Mit PHP überprüfen wie lange ein Datum schon her ist
KröteGAMES
- php
Hi!
Ich muss für meine Homepage überprüfen, wie lange es Datum schon her ist.
Also z.B.:
Datum der Variabel: 1.10.2080
Heutiges Datum: 10.10.2080
Das heißt ja das der 1.10.2080 schon 9 Tage her ist.
Dies 9 Tage sollen dann in einer Variabel gespeichert werden.
Ich bin mir eigentlich sicher, das es funktioniert. Gibt es da eine bestimmte Funktion für oder muss man das selber rechnen.
Wenn man es selber rechnen muss:
Wie geht das?
Bitte helft mir! ^^
MFG
KröteGAMES
Hallo,
du machst mit mktime oder wie das heißt einen timestamp. das sind dann sekunden, deren abstand du berechnen kannst. maketime() ist fies, aber der einzige weg. vorher kannst du mit implode() den string in ein array zerlegen.
Gruß
jobo
Hello,
du machst mit mktime oder wie das heißt einen timestamp. das sind dann sekunden, deren abstand du berechnen kannst. maketime() ist fies, aber der einzige weg. vorher kannst du mit implode() den string in ein array zerlegen.
Da hast Du sicherlich übersehen, dass es sich im Beispiel nicht um Daten aus dem gültigen Werteberich von mktime() (1901 bis 2038 bzw. sogar nur 1970 bis 2038) handelt.
Dedlfix Hinweis auf die Extension
http://de.php.net/manual/en/book.datetime.php
dürfte da schon eher zum Ziel führen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Ich muss für meine Homepage überprüfen, wie lange es Datum schon her ist.
Ich bin mir eigentlich sicher, das es funktioniert. Gibt es da eine bestimmte Funktion für oder muss man das selber rechnen.
Warum schaust du da nicht einfach im PHP-Handbuch nach?
* PHP Manual
* Function Reference
* Date and Time Related Extensions
* Date/Time
Die DateTime-Klasse kennt eine Methode diff(), mit der man Differenzen errechnen kann.
Lo!
Hallo dedlfix,
ich habe die Frage des OP hier kürzlich gesehen und weil mich das Thema interessiert (mit Zeit- und Datumsfunktionen in PHP habe ich mich noch nie so richtig anfreunden können *seufz*), habe ich mich, obwohl das aktuell nicht mein Problem ist, damit beschäftigt und mir die von Dir verlinkte Funktion angesehen.
Der aktuellste Kommentar dort ist der vom User 'andarin2' vom 18.11.2009. Er schreibt dort, dass eine Ausgabe mit einem Sekundenwert besser wäre, weil man dann exakt in Tage, Wochen, Monate, etc. umrechnen könnte. Ansonsten ergibt 28 Tage genauso '1 Monat' wie 31 Tage. (Siehe sein Beispiel dort.)
Leider hat er keine weitere Lösung gepostet. Meine Frage an Dich nun: Gibt es wirklich nur 'Tage' als Ergebnis der Differenzberechnung oder kann ich mir mit einer anderen Funktion die Sekunden zwischen 2 Tagen ausgeben lassen und dann in einem zweiten Schritt die _exakte_ Differenz in Tagen, Wochen, Monaten, etc. berechnen?
Mit freundlichsten Grüßen
Onkel Hans
Hi!
ich habe [...] mir die von Dir verlinkte Funktion angesehen.
Der aktuellste Kommentar dort ist der vom User 'andarin2' vom 18.11.2009. Er schreibt dort, dass eine Ausgabe mit einem Sekundenwert besser wäre, weil man dann exakt in Tage, Wochen, Monate, etc. umrechnen könnte. Ansonsten ergibt 28 Tage genauso '1 Monat' wie 31 Tage. (Siehe sein Beispiel dort.)
Monate nur, wenn man dafür eine einheitliche Länge definiert. Außerdem ist das Beispiel für PHP 5.3.2 nicht richtig, denn das liefert für 1.2.2009 bis 1.3.2009 28 Tage und erst ab 2.3.2009 1 Monat und 1 Tag. (Was auch irgendwie komisch ist.)
Es kommt darauf an, was man am Ende will. Für manche reicht es, wenn aus den beiden Daten eine der Wirklichkeit entsprechende Differenz gebildet wird, also die vergangenen Monate inklusive der Berücksichtigung von deren tatsächlicher Länge. Andere sähen lieber eine exakte Tagesanzahl (wobei da noch die Sommerzeitproblematik zu beachten ist). Es gibt zwar einen Format-Parameter %a für DateInterval::format(), aber da kommt nur Müll raus. Offensichtlich ist das noch eine Baustelle für die PHP-Leute.
Gibt es wirklich nur 'Tage' als Ergebnis der Differenzberechnung oder kann ich mir mit einer anderen Funktion die Sekunden zwischen 2 Tagen ausgeben lassen und dann in einem zweiten Schritt die _exakte_ Differenz in Tagen, Wochen, Monaten, etc. berechnen?
Sieht nicht so aus, als ob dir für deinen Fall die eingebauten Funktionen nützen. Du kannst aber immer noch die Timestamps nehmen und mit ihnen rechnen.
Lo!
Hallo,
Sieht nicht so aus, als ob dir für deinen Fall die eingebauten Funktionen nützen. Du kannst aber immer noch die Timestamps nehmen und mit ihnen rechnen.
Und vorher mit mktime() einen erzeugen (;-).
Lo!
Gruß
jobo