Pourquoi la sortie du code ci-dessous est-elle négative?Différence de temps incorrecte
code:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
Au-dessus de la sortie de code est -17295
Merci!
Pourquoi la sortie du code ci-dessous est-elle négative?Différence de temps incorrecte
code:
$date=strtotime("2013-04-10 21:31:30");
$now=time();
$diff=$now-$date;
echo $diff;
Au-dessus de la sortie de code est -17295
Merci!
Je pense vous obtenez une réponse négative comme le temps 2013-04-10 21:31:30
, que vous affectez à $date
La variable PHP est un heure standard indienne.
Votre fuseau horaire du serveur ne peut pas être Asie/Calcutta .Donc vous devez définir le fuseau horaire par défaut utilisé par toutes les dates/fonctions de temps dans un script pour Asie/Calcutta en utilisant date_default_timezone_set fonction.
Cela devrait fonctionner parfaitement: IDEONE DEMO
<?php
$date=strtotime("2013-04-10 21:31:30");
if(function_exists('date_default_timezone_set'))
date_default_timezone_set("Asia/Calcutta");
$now=time();
$diff=$now-$date;
echo $diff;
?>
merci beaucoup ... –
@Harikrishnan :) :) –
Parce que vous soustrayez quelque chose de plus (strtotime("2013-04-10 21:31:30")
) de quelque chose plus petit ($date
)
Mais il a aussi peut-être parce que vous avez pas défini le fuseau horaire ou il n'est pas réglé correctement en PHP, si $now
est vraiment supérieur à $date
Merci, ce sera une raison. –
car l'horodatage de la date de $ est à l'avenir et est donc maintenant $ de moins que lui, produisant ainsi un nombre négatif
Si nous 1365612708
secondes du 1 janvier 1970 et ce soir à 21:31:30 est 1365625890
secondes de 1 janvier 1970 lorsque vous soustrayez maintenant (1365612708
) du soir heure indiquée (1365625890
) vous obtenez -13182
secondes (ce qui est de 3,6 heures (aka 3 heures 30 minutes (ish)) à l'avenir)
est-ce pas '$ date> now' de $? – Zbigniew