2016-03-22 12 views
2

Ich habe zwei Werte:Wie zeigt man den Unterschied zwischen zwei Daten und Zeiten in PHP?

$c_time = 2016-03-21 14:56:05 
$e_time = 2016-03-24 14:56:05 

Jetzt möchte ich so noch verbleibende Zeit und Tage zeigen:

3 days 0 hour 0 minute 0 second 

Wie ich dies mit PHP tun kann?

+6

Hier finden Sie aktuelle PHP [Datetime] (http://php.net/DateTime) Klasse. Insbesondere die Methode [diff] (http://php.net/manual/en/datetime.diff.php). –

+0

Ändern Sie die Frage, fügen Sie den Kommentaren keinen Code hinzu. –

Antwort

2

können Sie versuchen, diese

$c_time = new DateTime('2016-03-21 14:56:05'); 

$e_time = new DateTime('2016-03-24 14:56:05'); 

$date_diff = $c_time->diff($e_time); 

echo "{$date_diff->days} days {$date_diff->h} hour {$date_diff->i} minute {$date_diff->s} second"; 
+0

Vielen Dank, es ist Arbeit! – Joe

0

- erste Weg:

$datetime1 = strtotime('May 3, 2012 10:38:22 GMT'); 
$datetime2 = strtotime('06 Apr 2012 07:22:21 GMT'); 
$secs = $datetime2 - $datetime1;// == return sec in difference 
$days = $secs/86400; 

- Eine andere Art und Weise:

$date1= new DateTime("May 3, 2012 10:38:22 GMT"); 
$date2= new DateTime("06 Apr 2012 07:22:21 GMT"); 
echo $date1->diff($date2)->("%d"); 
+0

Es wäre nützlich, die Daten in der Frage oder zumindest das Datumsformat in der Frage zu verwenden. – RiggsFolly

+0

Wenn OP Probleme hat, zwischen $ datetime1 & $ datetime2 zu unterscheiden und zu verstehen, dass sie seine eigenen 2 Daten als Beispiel wiedergeben, denke ich nicht, dass viele Erklärungen hier helfen würden. Andererseits glaube ich wirklich, dass er das verstehen würde. –

+0

Ich versuche nur, Ihnen zu helfen, bessere Antworten in der Zukunft zu produzieren. Schau dir die andere Antwort an, nicht viel Unterschied zu deiner und trotzdem bekommt er 2 Upvotes. – RiggsFolly

0
$c_time = new DateTime('2016-03-21 14:56:05'); 
$e_time = new DateTime('2016-03-24 14:56:05'); 
$interval = $c_time->diff($e_time); 
print $interval->format('%a days %h hour %i minutes %s seconds'); 

print $interval->days; // to obtain the number of days 
print $interval->h; // to obtain the number of hours 
print $interval->i; // to obtain the number of minutes 
print $interval->s; // to obtain the number of seconds 
0

Sie können date_diff() verwenden:

$c_time = "2016-03-21 15:56:05"; 
$e_time = "2016-03-24 15:56:05"; 
$start = date_create($c_time); 
$end = date_create($e_time); 
$diff=date_diff($end,$start); 
//print_r($diff); 
echo $diff->d." days, ".$diff->h." hours, ".$diff->m." minutes, ".$diff->s." seconds"; 

Ergebnis:

3 days, 0 hours, 0 minutes, 0 seconds 
Verwandte Themen