Question

Est-il temps ()? substr (microtime (), 2, 2) Est-il temps ().? Est-il temps (). Substr (microtime (), 2, 3)?

un peu perdu avec l'extrait suivant.

function updateClock ( ) {
    var timeStamp = <?php echo time().substr(microtime(), 2, 2);?>;
    var currentTime = new Date ( );
    currentTime.setTime( timeStamp );

    ...
    ...
}

Mon but est d'utiliser le temps du serveur et commencer à partir de là tic-tac dans la fenêtre du navigateur client. Le code ci-dessus renvoie soit l'heure de l'ordinateur client actuel ou parfois en 1973. Je suppose que je ne reçois pas le format de l'horodatage droit pour setTime ()?

Merci!

  • 1000

J'ai essayé, mais la page web montre encore mon heure locale après que je télécharger le js.php (rendu le code javascript) à mon serveur. Mon serveur est d'environ 12 heures dans le temps différent de moi. Je pense que php ne prend du temps côté client en temps de fonctionnement du compte ()? Je veux dire les navigateurs n'envoient le temps de demande à apache droit?

Je copiais le temps () * 1000 Valeur renvoyée de la course de la page web sur mon serveur et collé dans une page locale:

<script type="text/javascript">

var d = new Date();
d.setTime(1233760568000);
document.write(d);

</script>

Et il est bien mon heure locale. Ainsi la conjecture.

Y at-il de toute façon de spécifier le fuseau horaire pour le temps ()?

Était-ce utile?

La solution

Date.setTime prévoit que le nombre de millisecondes depuis 01.01.1970. fonction du temps de php donne le nombre de depuis 01/01/1970 secondes . Par conséquent, vous pouvez simplement utiliser

var TimeStamp = <?php echo time()*1000;?>

En raison de problèmes de latence (les navigateurs a besoin de charger la page entière avant de commencer JavaScript), le temps sera généralement dériver une ou deux secondes cependant.

Autres conseils

Multiplier par 1000. JavaScript PHP en millisecondes attend retourne secondes.

Date.setTime () veut millisecondes depuis l'époque Unix, et le temps () retourne secondes depuis. Si une précision absolue n'est pas nécessaire (et compte tenu de votre méthodologie, je ne pense pas que ce soit), il suffit de multiplier la valeur que vous obtenez en 1000 de temps ().

Edit: battu deux fois - D'oh

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top