PHP:trouver les jours de la différence entre deux date(“YmdHis”) reture
J'ai besoin de trouver la différence jour de la date("YmdHis")
valeur.disons une valeur est:
$previous_date='20101202115755';
$current_date= date("YmdHis");
$day_difference=?????
Maintenant, j'ai besoin de trouver la seule journée de la différence entre deux valeurs.C'est leur toute sorte de coeur qui peut m'aider à trouver la valeur?
Si vous voulez une belle lisible différence, comme la "1 jour, cinq heures et 25 minutes", voir ma réponse à cette question - stackoverflow.com/questions/4394161/php-time-calculation/...
OriginalL'auteur riad | 2010-12-12
Vous devez vous connecter pour publier un commentaire.
À convertir simplement vos dates de séjour pour les horodatages et puis soustraire previous_date de current_date et de diviser par le nombre de secondes dans une journée. Ceci est un exemple:
Si vous voulez le nombre de jours entre les deux, soustraire $diff par un.
Oui. Essayez de définir
$target
àstrtotime('2011-01-01')
et vous verrez qu'elle fonctionne très bien.OUI,merci..ça fonctionne
Pas de problèmes. Veuillez marquer ma réponse comme acceptées.
Le nombre de secondes dans une journée n'est pas
60*60*24
. Parfois, il est60*60*24 + 1
.OriginalL'auteur alexn
Pour PHP >= 5.3.0:
C'est pourquoi j'ai dit "php >= 5.3.0".
+1: Cette réponse est valable et au moment où il a été donné, riad, ne précise pas de quelle version de PHP, il était de ciblage.
oui je suis d'accord.cette sna est valide, mais comme je l'ai utiliser une version différente c'est pourquoi la recherche d'une autre solution. merci @gnud.
OriginalL'auteur gnud
floor()
ouround()
lors de l'affectation à$days_between_dates
, selon votre préférence, sinon, vous aurez très probablement obtenir de longues de flotteurs en arrière.Je sais :). Mais je pense que cela peut être réalisé par riad comme il le veut ;-).
OriginalL'auteur thedom
Vous avez un format étrange...
De l'analyser pour obtenir une timestamp avec
strptime
etmktime
:Soustraire le timestampes (
time()
donne l'heure actuelle):Diviser par
60*60*24
secondes pour obtenir la différence en jours:Cela dit, si possible, essayez de stocker ou d'obtenir la date n'est pas comme
20101202115755
mais comme timestamp UNIX. Ensuite, vous n'avez pas à passer par la conversion de tracas.Travail DÉMO
OriginalL'auteur Felix Kling