Tu calcules à partir d'un temps donné qui n'est pas forcément le temps actuel ?
Parce que sinon, il y a des équivalents JS de l'appel à time en PHP :
1 2 3
| var time = Date.now();
// ou bien
var time = new Date().getTime(); |
L'avantage de le faire en JS c'est que c'est directement lié à l'heure que l'utilisateur a sur sa machine. Solution à préférer si tu as besoin de précision.
Si tu utilises le time PHP, il va mettre un certain temps à traverser le réseau (disons par exemple 1 seconde), et donc en arrivant côté client il aura un léger retard. Par contre, en utilisant le temps de ton serveur, tu évites les problèmes qui peuvent survenir si l'heure est mal réglée chez l'utilisateur ![:P](https://www.developpez.net/forums/images/smilies/icon_razz.gif)
À toi de choisir donc.
Pour transmettre le temps serveur tu peux utiliser une balise <script> :
1 2 3
| <script type="text/javascript">
var time = <?php echo 1000 * time(); ?>;
</script> |
Il faut multiplier par 1000 car time renvoie une valeur en secondes alors que JS attend des valeurs en millisecondes.
Souviens-toi que le echo est « transformé » avant que la page soit envoyée, et qu'en quittant ton serveur le code aura cette forme (par exemple) :
1 2 3
| <script type="text/javascript">
var time = 1415813472000;
</script> |
Remarque : si tu as plusieurs variables à transmettre, envisage la méthode Sekaijin.
Personnellement je ne vois pas l'intérêt de calculer une différence de temps, mais peut-être que j'ai mal compris ta question.
Attention petit problème dans ton code :
$stamp = substr("$stamp", 0.10);
Les guillemets autour de $stamp ne sont pas utiles.
Le 0.10 est tronqué à 0 car substr n'accepte que des entiers. Du coup, ce substr ne fait rien…
Peut-être que tu voulais écrire :
$stamp = substr($stamp, 0, 10);
?
Partager