PHP datum differenz

koffi

Lt. Junior Grade
Dabei seit
Jan. 2007
Beiträge
467
hallo!

ich möchte die differenz zweier datumswerte ermitteln. leider kommt nur quatsch dabei raus..

hier mein code

Code:
$alt = strtotime($row['date']);
																	 echo echo (date("Y-m-d",time()) - $alt);

$row['date'] ist der datumswert in einem array aus einer datenbank, welches ich im script zuvor auslese und hat hat folgendes format: zB "2011-03-18"
mit date("Y-m-d",time()) hole ich mir das aktuelle datum von heute, im gleichen format.. richtig?
so, davon die differenz und dann sollte ja 29 in dem fall jetzt rauskommen. es wird aber der wert "-1300400789" ausgegeben.
wo ist der fehler?
 

Rain

Lieutenant
Dabei seit
Mai 2003
Beiträge
704
strtotime wandelt das Datum in die Einheit Sekunden um. Beide Daten strtotime, subtrahieren und Ergebnis wieder auf Einheit Tage umrechnen
 

volcem

Lieutenant
Dabei seit
Dez. 2007
Beiträge
1.020
PHP:
$datetime = strtotime($row['date']);

$datenow = strtotime(date("Y-m-d",time()));

$differenz = $datetime - $datenow;
$differenz = $differenz / 86400;

echo $differenz;

Ungetestet!

Sollte aber so gehen.
 
Zuletzt bearbeitet:

koffi

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Jan. 2007
Beiträge
467
ok, danke.
mit volcems methode bekomme ich halbwegs brauchbare ergebnisse, alle werte sind negativ und nicht natürlich, also zum beispiel -21.9583333333. muss das also noch runden und *( -1) nehmen..

*edit
$differenz = $datetime - $datenow;
ist verkehrt rum :) damit wär das problem mit den negativen zahlen erledigt. nur runden muss man noch
 
Zuletzt bearbeitet:

fry2k

Cadet 4th Year
Dabei seit
März 2004
Beiträge
116
wenn es sich bei der ominäsen datenbank um sql handelt, kann man die datumsdifferenz auch gleich die datenbank machen lassen.

ich rate einmal ins blaue und verlinke auf die mysql funktion: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

ansonsten sollte jede db in der lage sein ein datumsfeld in den unix timestamp umzuwandeln und mit der gleichen logik wie in php die differenz in tage berechnet werden ;)
 

Xetoxyc

Lieutenant
Dabei seit
Nov. 2010
Beiträge
872
Code:
$differenz = $datetime - $datenow;

naja nicht sehr sinnvoll xD
da $datenow immer größer is als $datetime
solange man nciht in zukunft rechnen will xD

wür da eher

Code:
$differenz =  $datenow - $datetime;

machen

dann sparste dir *-1
 

volcem

Lieutenant
Dabei seit
Dez. 2007
Beiträge
1.020
Naja ging vorhin alles ein wenig schnell, Variablen vertauscht, deswegen ja "ungetestet."...

Man kann sich auch an Sachen hochziehe, zumal der Fehler ja bereits behoben wurde bzw hier gepostet!

-.-
 

heldiX

Newbie
Dabei seit
Apr. 2011
Beiträge
7
SELECT
(TO_DAYS(NOW()) - TO_DAYS(zeit)) (Oder wie auch immer die Spalte heisst)
AS
differenzInTagen
FROM ...
WHERE ...

Dann hat man in seiner Abfrage in
$row["differenzInTagen"]
die Differenz der Tage zu Heute.

So nutzt man das was MYSQL einem bietet :)

Lg,
heldiX
 
Zuletzt bearbeitet:

volcem

Lieutenant
Dabei seit
Dez. 2007
Beiträge
1.020
Viele Wege führen nach Rom ;)

Der Unterschied ist in der Geschwindigkeit aber so gering, dass es fast egal ist. ( Bei diesem Beispiel )
 
Top