einen Tag zu einem Datum addieren
Ilja
- php
0 wahsaga0 Ilja0 Thomas Meinike0 Ilja
0 Chris (C)
hi zusammen,
ich habe ein datumsformat mit folgender formatierung: YYYY-MM-DD in der variable $start gespeichert, also nicht als timestamp. ich will nun einen tag auf ein bestehendes datum drauf addieren, wobei ein einfaches $start++; nicht geht, weil er die umbrüche der monate und jahre nicht einbezieht. jemand einen vorschlag, wie ich das machen kann ?
Ilja
hi,
ich habe ein datumsformat mit folgender formatierung: YYYY-MM-DD in der variable $start gespeichert, also nicht als timestamp. ich will nun einen tag auf ein bestehendes datum drauf addieren, wobei ein einfaches $start++; nicht geht, weil er die umbrüche der monate und jahre nicht einbezieht. jemand einen vorschlag, wie ich das machen kann ?
ja - nutze ein geeigneteres datumsformat, mit dem man auch "rechnen" kann.
es bei der _ausgabe_ als YYYY-MM-DD zu formatieren, ist dann immer noch eine leichtigkeit.
btw: in php ist dein problem so nicht trivial lösbar - wenn dieses datum edoch aus einer mysql-datenbank kommen sollte(?) und dort als 'ordentlicher' datumstyp abgelegt ist, kannst du hierganz leicht mit den datums-funktionen von mysql einen tag addieren.
gruss,
wahsaga
hi wahsaga,
nope, sie sollen rein in die datenbank. aber dazu muss ich vorher noch ein paar berechnungen durchführen und das datum eventuell angleichen, bzw. einen tag dazu addieren. das datum hat leider dieses format, weil es aus einem formular kommt, sprich tag, monst und jahr sind die variablen, die ich abfange und einfach nur in einer varibale zusammenführe. ich könnte auch einen timestamp draus machen, aber dort kann ich auch nicht so einfach einen tag addieren.
es wäre natürlich möglich, über die mysql datenbank das datum + einen tag ausgeben zu lassen. aber doch ein wenig umständlich. hoffe immer noch, dass es einen anderen weg gibt.
Ilja
Hallo,
es wäre natürlich möglich, über die mysql datenbank das datum + einen tag ausgeben zu lassen. aber doch ein wenig umständlich. hoffe immer noch, dass es einen anderen weg gibt.
Probiere es so:
<?php
$datumalt="2003-06-26";
$j=(int)substr($datumalt,0,4);
$m=(int)substr($datumalt,5,2);
$t=(int)substr($datumalt,8,2);
$datumneu=mktime(0,0,0,$m,$t+1,$j);
print date("d.m.Y",$datumneu); // 27.06.2003
?>
MfG, Thomas
yo danke Thomas
Ilja
Hallo,
da schau dir mal die Funktion strtotime() an:
echo strtotime ("now"), "\n";
echo strtotime ("10 September 2000"), "\n";
echo strtotime ("+1 day"), "\n";
echo strtotime ("+1 week"), "\n";
echo strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime ("next Thursday"), "\n";
echo strtotime ("last Monday"), "\n";
Beispiel 2. Fehlerüberprüfung
$str = 'Nicht gut';
if (($timestamp = strtotime($str)) === -1) {
echo "Der String ($str) ist falsch.";
} else {
echo "$str == ". date('l dS of F Y h:i:s A',$timestamp);
}
Die macht das alles ganz von alleine
Chris (C)