Si j'ai un couple de chaînes $ startDate et $ endDate qui sont définies par (par exemple) "2011/07/01" et "2011/07/17" (ce qui signifie 1 Juillet 2011 et 17 Juillet 2011). Comment devrais-je compter les jours entre la date de début et la date de fin? Dans l'exemple donné, ce serait 17 jours.Comment compter les jours entre deux dates en PHP?
Répondre
Voici la façon brute de le faire
$startTimeStamp = strtotime("2011/07/01");
$endTimeStamp = strtotime("2011/07/17");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400; // 86400 seconds in one day
// and you might want to convert to integer
$numberDays = intval($numberDays);
Ne fonctionne pas correctement lorsque vous avez des dates locales qui incluent un basculement de temps d'épargne dayling, car à ces dates vous avez des jours avec 23 ou 25 heures. –
Merci.Apparaît pour travailler pour moi. – cannyboy
En fait, il est dit 16 jours pour ces dates .. Ai-je besoin de faire des dates ignorer l'heure d'été ..? – cannyboy
PHP dispose d'une fonction date_diff() pour cela.
Use DateTime::diff
(aka date_diff
):
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
Ou:
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
Vous pouvez alors obtenir l'intervalle comme un entier en appelant $interval->days
.
Cela ne semble pas fonctionner avec mes initiales "2011/07/01" et "2011/07/17" ... "Appel à fonction indéfinie date_diff() .. ". J'utilise PHP 5.2.10 – cannyboy
Par la documentation (liée en haut), c'est PHP> = 5.3.0. Pour la prochaine fois, veuillez inclure la version de PHP dans votre question. – wuputah
ne fonctionne que si vous n'avez pas de temps dans vos dates, sinon il peut revenir 1-2 jours à quelques – Dukeatcoding
Aucune des solutions a fonctionné pour moi. Pour ceux qui sont encore sur PHP 5.2 (DateTime :: diff a été introduit en 5.3), cette solution fonctionne:
function howDays($from, $to) {
$first_date = strtotime($from);
$second_date = strtotime($to);
$offset = $second_date-$first_date;
return floor($offset/60/60/24);
}
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
Dans le cas où votre DateTime a également heures: minutes: secondes et vous voulez toujours avoir le nombre de jours ..
/**
* Returns the total number of days between to DateTimes,
* if it is within the same year
* @param $start
* @param $end
*/
public function dateTimesToDays($start,$end){
return intval($end->format('z')) - intval($start->format('z')) + 1;
}
Si vous voulez connaître le nombre de jours (le cas échéant), le nombre d'heures (le cas échéant), minutues (le cas échéant) et secondes, vous pouvez effectuer les opérations suivantes:
$previousTimeStamp = strtotime("2011/07/01 21:12:34");
$lastTimeStamp = strtotime("2013/09/17 12:34:11");
$menos=$lastTimeStamp-$previousTimeStamp;
$mins=$menos/60;
if($mins<1){
$showing= $menos . " seconds ago";
}
else{
$minsfinal=floor($mins);
$secondsfinal=$menos-($minsfinal*60);
$hours=$minsfinal/60;
if($hours<1){
$showing= $minsfinal . " minutes and " . $secondsfinal. " seconds ago";
}
else{
$hoursfinal=floor($hours);
$minssuperfinal=$minsfinal-($hoursfinal*60);
$days=$hoursfinal/24;
if($days<1){
$showing= $hoursfinal . "hours, " . $minssuperfinal . " minutes and " . $secondsfinal. " seconds ago";
}
else{
$daysfinal=floor($days);
$hourssuperfinal=$hoursfinal-($daysfinal*24);
$showing= $daysfinal. "days, " .$hourssuperfinal . " hours, " . $minssuperfinal . " minutes and " . $secondsfinal. " seconds ago";
}}}
echo $showing;
Vous pouvez utiliser le même logique si vous voulez ajouter des mois et des années.
Une façon simple de compter est
$currentdate = date('Y-m-d H:i:s');
$after1yrdate = date("Y-m-d H:i:s", strtotime("+1 year", strtotime($data)));
$diff = (strtotime($after1yrdate) - strtotime($currentdate))/(60 * 60 * 24);
echo "<p style='color:red'>The difference is ".round($diff)." Days</p>";
Vous pouvez utiliser date_diff
pour calculer la différence entre deux dates:
$date1 = date_create("2013-03-15");
$date2 = date_create("2013-12-12");
$diff = date_diff($date1 , $date2);
echo $diff->format("%R%a days");
$date1 = date_create("2017-04-15");
$date2 = date_create("2017-05-18");
//difference between two dates
$diff = date_diff($date1,$date2);
//count days
echo 'Days Count - '.$diff->format("%a");
- 1. Différence de jours entre deux dates
- 2. Différence de jours entre deux dates Java?
- 3. Problème de trouver la différence en jours entre deux dates
- 4. Nombre de jours entre deux dates - ANSI SQL
- 5. Quel est le nombre de jours entre deux dates?
- 6. Comment soustraire deux dates, en ignorant l'heure d'été en PHP?
- 7. C# Nombre de jours entre deux dates problème
- 8. Calculez le nombre de jours de la semaine entre deux dates en C#
- 9. comment calculer les jours ouvrables entre deux dates différentes dans asp.net
- 10. différence entre les dates
- 11. Comment calculer l'heure en heures entre deux dates dans iOS
- 12. Comment obtenir Nombre de mois et Jours De deux dates
- 13. Obtenir la différence entre deux heures/dates en utilisant php?
- 14. Comment trouver des dates/jours communs dans deux plages de dates
- 15. Trouver des dates manquantes entre deux dates
- 16. comment exécuter le compte à rebours avec les dates pour compter les jours dans iphone sdk
- 17. Sélectionnez entre deux dates avec Django
- 18. chèque dimanche tombe entre deux dates
- 19. Calculer deux dates avec PHP?
- 20. Comment obtenir la différence entre deux jours dans l'iPhone
- 21. Comment répéter les valeurs entre les deux dates?
- 22. compter les jours - iPhone Compte à rebours
- 23. Comment calculer combien de jours ouvrables se situent entre deux dates?
- 24. Comment puis-je obtenir le nombre de jours entre deux dates dans Oracle 11g?
- 25. Comment compter les différences entre deux fichiers sous Linux?
- 26. Nombre d'années entre deux dates
- 27. Durée entre deux dates dans Groovy
- 28. C# - Différence entre deux dates?
- 29. génération des dates des sept derniers jours en php
- 30. Comment trouver la différence entre deux dates en oracle?
voir http://stackoverflow.com/questions/2040560/find-the-number-of-days-between-two-dates –