Forum: PC-Programmierung Datum in PHP


von Vater Zeit (Gast)


Lesenswert?

Moin Leute, ich kriegs einfach nicht hin, obwohl ich hier die PHP und 
MYSQL Online-Doku offen habe.

Ich brauche in meinem PHP-Skript ein Datum, und zwar "jetzt plus drei 
Monate", und das in einem Format, dass ich es in eine MySQL-Datenbank 
eintragen kann. MySQL kann das zwar auch alleine, aber ich brauche das 
Datum zum Anzeigen halt auch schon im PHP-Skript, deshalb möchte ich es 
auch dort erzeugen.

Kann mir jemand auf die Sprünge helfen?

von Lukas K. (carrotindustries)


Lesenswert?

Du ermittelst mit time() den aktuellen Zeitstempel und addierst 3 Monate 
(in Sekunden). Mit date() pfriemelst du aus dem neuen Zeitstempel das 
aktuelle Datum (Jahr, Monat, Tag) heraus.
1
$newtime = time()+60*60*24*30*3;
2
$year = date("Y", $newtime);
3
$month = date("n", $newtime);
4
$day = date("j", $newtime);
5
$newdate = $year."-".$month."-".$day;
unter der Annahme, dass du unter 3 Monaten 3*30 Tage o.ä. verstehst. 
Ansonsten einfach auf den Aktuellen Montag 3 addieren und Überläufe > 12 
abfangen und dabei das Jahr erhöhen.

von Chris R. (hownottobeseen)


Lesenswert?

Hi,

PHP >= 5 hat die Date-Klasse, die auch eine Methode date_add kennt.

Ohne die Klasse musst du das Datum mit date() zerlegen und mit mktime 
wieder zusammenbauen. Beim Monat kannst du dann einfach 3 Monate 
addieren (Achtung: Monate sind glaube ich 0-basierend (Januar = 0)).

Unplausible Monatsangaben werden korrekt verarbeitet (z.b. Monat 25)

HTH

von mpl (Gast)


Lesenswert?

na da fehlt aber was ^^

versuchs mal so

$newdate = date('Y-m-d', strtotime('+3 month'));

von Roland P. (pram)


Lesenswert?

Schau dir mal die Date-Funktionen in PHP an:
http://www.php.net/manual/en/function.date-add.php
(insb zweiten Post)

Du kannst aber evtl auch das so machen
INSERT into Tabelle (DatumSpalte) VALUES( DATE_ADD(NOW(), INTERVAL 3 
MONTHS)) )

Gruß
Roland

von Lukas K. (carrotindustries)


Lesenswert?

mpl schrieb:
> na da fehlt aber was ^^
>
> versuchs mal so
>
> $newdate = date('Y-m-d', strtotime('+3 month'));
sehen wir doch mal nach...
Luk4s K. schrieb:
> $newtime = time()+60*60*24*30*3;

von mpl (Gast)


Lesenswert?

ja jetzt aber :D davor haben die +3 monate gefehlt ^^ warst mitm edit 
schneller als ich =)

von mpl (Gast)


Lesenswert?

Roland Praml schrieb:
> Du kannst aber evtl auch das so machen
> INSERT into Tabelle (DatumSpalte) VALUES( DATE_ADD(NOW(), INTERVAL 3
> MONTHS)) )

jo aber so kann er mit dem datum nicht in php weiterarbeiten... NOW() is 
mysql

von Lukas K. (carrotindustries)


Lesenswert?

mpl schrieb:
> ja jetzt aber :D davor haben die +3 monate gefehlt ^^ warst mitm edit
> schneller als ich =)

erwischt :(

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.