PHP Date de différence
j'ai le code suivant:
$dStart = new DateTime('2013-03-15');
$dEnd = new DateTime('2013-04-01');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;
Je ne sais pas pourquoi je me fais 6015 comme résultat.
Qu'advient-il si vous décaler la date par un? Essayez
Si j'ai mis 2013-03-16 et 2013-04-02-je obtenir la même valeur 6015
J'ai trouvé de rapport de Bug#51184 bugs.php.net/bug.php?id=51184
Évidemment, vous ne pouvez pas en ce moment, mais dès que vous le pouvez, vous devez, comme une réponse et le marquer comme étant la bonne.
2013-03-16
et 2013-04-02
, par exemple.Si j'ai mis 2013-03-16 et 2013-04-02-je obtenir la même valeur 6015
J'ai trouvé de rapport de Bug#51184 bugs.php.net/bug.php?id=51184
Évidemment, vous ne pouvez pas en ce moment, mais dès que vous le pouvez, vous devez, comme une réponse et le marquer comme étant la bonne.
OriginalL'auteur carlosduarte | 2013-04-01
Vous devez vous connecter pour publier un commentaire.
Essayer comme
ou selon votre code d'essayer avec
si vous voulez diff dans les jours essayez avec cette aussi
essayez de modifier..??plz
Eu it..@carlosduarte..??
Voir le commentaire sur Haralan Dobrev, la réponse ci-dessous. Peut-être la peine d'éditer la réponse pour les futurs lecteurs
Mais avec mon troisième et que vous pouvez se débarrasser de lui..??droit
OriginalL'auteur Gautam3164
Essayer ce-
Vérifier PHP
Veuillez vérifier le lien de démonstration
mise à jour post et ajouté un lien pour phpfiddle: phpfiddle.org/main/code/7dq-mb7
Dans cet exemple, vous pouvez ajouter tous date... Dire changer en 2015, il est de retour de 17 jours toujours
OriginalL'auteur Suresh Kamrushi
utiliser cette
peut-être que ce retour d'erreur pour votre version de php. J'ai testé et c'retour +17 jours.
Je ne peux pas comprendre ce qui se passe avec PHP, si je me fais l'écho (1363305600 - 1364857200 ) / ( 60 * 60 * 24 ) elle retourne -A. 9583333333333
Pouvez-vous me dire quelle est la version de PHP que vous utilisez? Car elle renvoie la valeur correcte c'est à dire -17.958333333333 dans ma version locale & qui devrait être.
Veuillez préciser "ma version locale". Quelle version? Pour moi, il me donne toujours "+6015 jours" sur PHP 5.3.0. De vérifier ma solution comment je l'ai eu à travers.
OriginalL'auteur Tapas Pal
Je préfère quelque chose comme:
Cela ne fonctionnera pas si la différence est de plus de 1 mois. DateInterval sera reporté et l'incrément de
m
, la réinitialisation ded
à 0. Actuellement, vous utiliser$interval->format('a')
pour obtenir le nombre total de jours entre deux jours (si vous prévoyez de la portée de jamais être supérieur à 1 mois)Merci! J'ai appliqué le modifier. J'ai été en utilisant cette fonction, pas de problème, mais mon cas était toujours à l'intérieur d'un mois.
OriginalL'auteur Haralan Dobrev
J'ai eu le même 6015 jours sur PHP 5.3.0 et trouvé la solution à l'aide de
var_dump()
.Mon code exact est ici:
Maintenant si je fais un
var_dump($interval)
, le résultat est:Donc le nombre d'heures (
h
), des minutes(i
) et secondes (s
) sont correctement réglé, mais il y a une autre propriétédays
qui reste constante à 6015 et c'est ce que les autres sont aussi un bug. Eh bien, je ne peux pas comprendre d'où il est l'obtention de cette valeur. De nouveau, comme par le manuel PHP pourDateInterval
à http://www.php.net/manual/en/class.dateinterval.php, j'ai essayé d'accéder à des propriétés d'un objet et les choses se sont vraiment bien.Donc, j'obtiens le résultat exact par:
OriginalL'auteur Zeeshan