Wie findet man die Anzahl der Tage zwischen zwei Daten mit PHP?
Antworten
Zu viele Anzeigen?
Balaji D
Punkte
944
Einfache Verwendung von date_diff
$from=date_create(date('Y-m-d'));
$to=date_create("2013-03-15");
$diff=date_diff($to,$from);
print_r($diff);
echo $diff->format('%R%a days');
- Siehe mehr unter: http://blog.innovsystems.com/php/get-number-days-between-two-dates-php
user2182143
Punkte
902
Objektorientierter Stil:
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
Verfahrenstechnischer Stil:
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
Miguel Costa
Punkte
389
Nun, die gewählte Antwort ist nicht die richtigste, da sie außerhalb von UTC nicht funktioniert. Abhängig von der Zeitzone ( Liste ) könnte es Zeitanpassungen geben, die Tage "ohne" 24 Stunden schaffen, wodurch die Berechnung (60*60*24) fehlschlägt.
Hier ist ein Beispiel dafür:
date_default_timezone_set('europe/lisbon');
$time1 = strtotime('2016-03-27');
$time2 = strtotime('2016-03-29');
echo floor( ($time2-$time1) /(60*60*24));
^-- the output will be **1**
Die richtige Lösung ist also die Verwendung von DateTime
date_default_timezone_set('europe/lisbon');
$date1 = new DateTime("2016-03-27");
$date2 = new DateTime("2016-03-29");
echo $date2->diff($date1)->format("%a");
^-- the output will be **2**
PHP Ferrari
Punkte
14918
Chamikara Samarasekara
Punkte
325
Sie können Termine einfach finden, indem Sie
<?php
$start = date_create('1988-08-10');
$end = date_create(); // Current time and date
$diff = date_diff( $start, $end );
echo 'The difference is ';
echo $diff->y . ' years, ';
echo $diff->m . ' months, ';
echo $diff->d . ' days, ';
echo $diff->h . ' hours, ';
echo $diff->i . ' minutes, ';
echo $diff->s . ' seconds';
// Output: The difference is 28 years, 5 months, 19 days, 20 hours, 34 minutes, 36 seconds
echo 'The difference in days : ' . $diff->days;
// Output: The difference in days : 10398