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 ()?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top