Subtrahieren Sie 1 Tag mit PHP
Ich versuche es mit einem date-Objekt, das ist aus meiner Drupal-CMS, subtrahieren einen Tag und drucken Sie beide Termine. Hier ist, was ich haben
$date_raw = $messagenode->field_message_date[0]['value'];
print($date_raw);
//this gives me the following string: 2011-04-24T00:00:00
$date_object = date_create($date_raw);
$next_date_object = date_modify($date_object,'-1 day');
print('First Date ' . date_format($date_object,'Y-m-d'));
//this gives me the correctly formatted string '2011-04-24'
print('Next Date ' . date_format($next_date_object,'Y-m-d'));
//this gives me nothing. The output here is always blank
So, ich bin nicht zu verstehen, warum die ursprünglichen date-Objekt, das coming out ist in Ordnung, aber dann bin ich versucht, zu erstellen eine zusätzliche Datum-Objekt und ändern Sie es, durch subtrahieren eines Tages, und es scheint, ich kann das nicht tun. Die Ausgabe kommt immer leer.
InformationsquelleAutor der Frage td-dev | 2011-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen:
InformationsquelleAutor der Antwort MasterCassim
InformationsquelleAutor der Antwort iThink
Objektorientierte version
InformationsquelleAutor der Antwort Cosmitar
Mithilfe von DateTime hat deutlich reduziert die Menge an Kopfschmerzen ertragen, während die Manipulation von Daten.
InformationsquelleAutor der Antwort aberdat
Nicht sicher, warum Sie Ihren aktuellen code funktioniert nicht, aber wenn Sie nicht speziell ein date-Objekt, das wird funktionieren:
InformationsquelleAutor der Antwort Clive
Einen one-liner option:
Läuft es auf Online-PHP-Editor.
mktime alternative
Wenn Sie es vorziehen zu vermeiden, mit string-Methoden, oder gehen in die Berechnungen oder auch die Schaffung von zusätzlichen Variablen, mktime unterstützt Subtraktion und negative Werte in der folgenden Weise:
Online-PHP-Editor
InformationsquelleAutor der Antwort Armfoot
Wie wäre es damit: konvertieren Sie es in einen unix-timestamp erste, subtrahieren 60*60*24 (genau einen Tag in Sekunden), und dann greifen Sie das Datum aus.
Hinweis: als apokryfos hingewiesen hat, wäre dies technisch geworfen werden, die durch die Zeitumstellung verpasst, wo es wäre ein Tag mit 25 oder 23 Stunden
InformationsquelleAutor der Antwort user3413723