Come fornire un valore al metodo javascript Date.setTime () da PHP?
-
21-08-2019 - |
Domanda
E 'tempo ()? E 'tempo (). Substr (microtime (), 2, 2)? E 'tempo (). Substr (microtime (), 2, 3)?
Tipo di persa con il seguente frammento.
function updateClock ( ) {
var timeStamp = <?php echo time().substr(microtime(), 2, 2);?>;
var currentTime = new Date ( );
currentTime.setTime( timeStamp );
...
...
}
Il mio obiettivo è quello di usare il tempo del server e iniziare da lì ticchettio sulla finestra del browser del client. Il codice di cui sopra sia restituisce l'ora del computer client corrente o qualche volta nel 1973. Credo che non sto ottenendo il giusto formato di data e ora per setTime ()?
Grazie!
- 1000
Ci ho provato, ma la pagina web mostra ancora la mia ora locale dopo a caricare il js.php (rendendo il codice JavaScript) al mio server. Il mio server è di circa 12 ore diverso nel tempo da me. La mia ipotesi è che non richiede PHP cliente di tempo lato in considerazione il tempo di esecuzione ()? Voglio dire i browser inviano momento, chiedere di apache giusto?
Ho copiato il tempo () * 1000 ha restituito il valore dalla pagina web corsa sul mio server e incollato in una pagina locale:
<script type="text/javascript">
var d = new Date();
d.setTime(1233760568000);
document.write(d);
</script>
Ed è davvero la mia ora locale. Così la congettura.
Esiste un modo per specificare il fuso orario per il tempo ()?
Soluzione
Date.setTime aspetta che il numero di millisecondi dal 1970/01/01. php restituisce il numero di secondi dal 1970/01/01. Pertanto, si può semplicemente utilizzare
var TimeStamp = <?php echo time()*1000;?>
A causa di problemi di latenza (il browser deve caricare l'intera pagina prima di iniziare JavaScript), il tempo sarà generalmente deriva uno o un paio di secondi, però.
Altri suggerimenti
Moltiplicare per 1000. JavaScript aspetta millisecondi, mentre PHP restituisce secondi.
Date.setTime () vuole millisecondi dalla Unix Epoch, e il tempo () restituisce secondi da allora. Se non è richiesta precisione assoluta (e dato la propria metodologia, non credo che sia), basta moltiplicare il valore che si ottiene da tempo () per 1000.
Modifica: battuto due volte - D'oh