[PHP] Timestamp auslesen wieviele Tage, Stunden, minuten und Sekunden

M3Y3R

Well-known member
ID: 336361
L
8 Mai 2006
1.608
60
Hallo,

ich habe zwei Daten, welche ich mit der Funktion strtotime() in ein Timestamp umwandle.

Die Daten sehen wie folgt aus:
1. Datum :arrow: 2007-05-24 15:08:46
2. Datum :arrow: 2007-11-05 14:11:45


Nun möchte ich mit hilfe einer Funktion auslesen können, wieviele Tage, Stunden, Minuten und Sekunden seit dem 1. Datum vergangen ist. Wie kann ich das mit einer einzigen Funktion realisieren.

Das ganze soll zum schluss in ein einziges Feld gepackt werden und etwas so aussehen:


Wer kann mir dabei helfen?


Mit freundlichen Grüßen
Daniel Meyer
 
So in der Art:
PHP:
<?php
	function date_diff($a, $b)
	{
		if (!is_numeric($a))
		{
			$a = strtotime($a);
		}
		if (!is_numeric($b))
		{
			$b = strtotime($b);
		}
		if (!$a or !$b)
		{
			return false;
		}
		$diff = abs($a-$b);

		$seconds = $diff % 60;
		$diff = floor($diff / 60);
		$minutes = $diff % 60;
		$diff = floor($diff / 60);
		$hours = $diff % 24;
		$diff = floor($diff/24);
		$days = $diff;

		return sprintf('%ud %uh %um %us', $days, $hours, $minutes, $seconds);
	}

	$date_1 = '2007-05-24 15:08:46';
	$date_2 = '2007-11-05 14:11:45';
	echo date_diff($date_1, $date_2);
?>
 
Ich weiß nicht, ob PHP dafür bereits eine Funktion bereitstellt... aber warum schreibst du dir nicht einfach selber eine kleine Funktion?

Timestamps subtrahieren, dann hast du den Unterschied in Sekunden. Den brauchst du dann ja nur noch umrechnen ;).