problemi con gli orari

carlo.

Nuovo Utente
4 Gen 2013
1
0
0
Salve a tutti...
Prima di tutto devo dire che mi sto avvicinando al PHP solo da pochi giorni per cui... Chiederò probabilmente delle cose sicuramente sciocche ma al momento ho un problema con una stupidissima routine che deve calcolare la differenza tra due orari.
Cerco di semplificare il problema.
lancio il programma e metto in una variabile il valore di time() [$Inizio = time()]
poi metto un semplice bottone.
vorrei calcolare quanto tempo è passato dall'inizio del programma fino a quando premo il bottone.
Ovviamente salvo l'orario in cui premo il bottone in un'altra variabile [$Fine =time()]
Mi aspetterei, come in qualsiasi altro linguaggio, che facendo la differenza tra i due valori ottengo il tempo trascorso, [$Durata].
Invece, non capisco perché e questo è il motivo per cui scrivo, quando premo il bottone il valore di $Inizio cambia da solo e assume il valore del time() al momento di premere il bottone.
Come faccio a memorizzare l'orario di inizio senza che cambi tutte le volte?
Il codice, che segue, è (ritengo) banale...
PHP:
<?php
	$Inizio=Time();
	echo $Inizio;
	$Durata=0; 
	echo "<br />";
	if (!empty($_GET['act'])) {
		echo "Premuto! <br />"; 
		$Fine= time();
		$Durata = $Fine - $Inizio;
		echo $Fine;
		echo "<br />";
		echo $Durata;
  } else {
?>

<form action="index.php" method="get">
  <input type="hidden" name="act" value="run">
  <input type="submit" value="Premimi!">
</form>

<?php
  }
?>

Eppure non funziona...
Una volta ottenuto un valore "credibile" poi lo posso trasformare in un formato orario leggibile ma al momento ottengo sempre ZERO in quanto tutte le volte che premo il bottone, il valore di cui avevo fatto "echo" cambia e si aggiorna con l'orario di sistema.

Aiuto, per favore e scusate davvero ma sono proprio alle primissime armi...

Grazie,
Carlo
 
Ultima modifica di un moderatore:
Semplice, perché quella è una normale variabile, dovresti utilizzare ad esempio una sessione per memorizzarlo, oppure stampare il valore in un campo del form per poi reinviarlo
 
io ti ho messo l'orario attuale in un campo hidden lo passi col submit e lo confronti con l'orario dopo la submit


PHP:
<?php
$Inizio=$_GET['inizio'];
echo $Inizio;
$Durata=0; 
echo "<br />";
if (!empty($_GET['act'])) {
echo "Premuto! <br />"; 
$Fine= time();
$Durata = $Fine - $Inizio;
echo $Fine;
echo "<br />";
echo $Durata;
} else {

echo '<form action="index.php" method="get">';
echo '<input type="hidden" name="inizio" value="' . time() . '">'; //attenzione che qui sono un doppio apice poi un apice un punto time() un punto un apice e infine un doppio apice ;)
echo '<input type="hidden" name="act" value="run">';
echo '<input type="submit" value="Premimi!">';
echo '</form>';


}
?>
 
Ultima modifica:

Discussioni simili