Der folgende Beitrag wurde am 01. 02. 2004, 17:58 Uhr von Gerd veröffentlicht.
Hi,
ich habe ein Formular, in dem Mitarbeiter ihre Urlaubszeiten eintragen können. Sie müssen jeweils den ersten Tag ihres Urlaubs eintragen und es soll jetzt das Datum für 14 Tage später errechnet werden.
Das Datum liegt in der Form 01.01.2004 vor.
Wie kann ich mittels PHP das Zukunftsdatum berechnen lassen?
Vilen Dank im Voraus.
Der folgende Beitrag wurde am 01. 02. 2004, 18:02 Uhr von Thomas Luethi veröffentlicht.
Hallo,
> Das Datum liegt in der Form 01.01.2004 vor.
Nicht gerade aussagekraeftiges Beispiel...
dd.mm.yyyy ("deutsch"/"europaeisch")
oder
mm.dd.yyyy ("amerikanisch")?
Wie auch immer, zum Berechnen ist es normalerweise am besten,
wenn man Daten ins Unix-Timestamp-Format umwandelt.
> Wie kann ich mittels PHP das Zukunftsdatum berechnen lassen?
Lies mal im PHP-Manual: Datums- und Zeit-Funktionen:
http://www.php.net/manual/de/ref.datetime.php
Insbesondere strtotime() ist interessant und koennte Dir weiterhelfen:
$timestamp2=strtotime("+2 weeks",$timestamp1);
Gruesse,
Thomas
--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (/faq/#Q-19).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
Der folgende Beitrag wurde am 01. 02. 2004, 18:17 Uhr von Andy veröffentlicht.
Hi,
zerlege das Datum in Tag, Monat und Jahr.
Zähle bei Tag 14 dazu.
Wenn es bei den Monaten 1,3,5,7,8,10,12 mehr als 31, bei 4,6,9,11 mehr als 30 oder bei 2 mehr als 28 sind, zähle bei Monat eins dazu!
Das Programm ist soweit halt noch nicht auf Daten über den Jahreswechsel eingestellt. Außerdem gibts bei Schaltjahren Probleme!
Andy
Der folgende Beitrag wurde am 01. 02. 2004, 18:25 Uhr von Thomas Luethi veröffentlicht.
Hallo,
> Das Programm ist soweit halt noch nicht auf Daten über den Jahreswechsel eingestellt. Außerdem gibts bei Schaltjahren Probleme!
Eben - ueber all diese Probleme (Monatswechsel, Jahreswechsel, Schaltjahre...)
muss man sich keine Gedanken machen, wenn man einfach strtotime() verwendet...
Gruesse,
Thomas
--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (/faq/#Q-19).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
Der folgende Beitrag wurde am 01. 02. 2004, 18:27 Uhr von Gerd veröffentlicht.
Hi und danke erstmal,
ich habe folgendes Programm geschrieben:
<?php
$time = strtotime("+2 week", $zeit);
echo strftime("%d.%m.%Y", $time);
?>
Wobei $zeit = 31.01.2003 ist.
Als Ausgabe erhalt ich folgendes Datum: 15.01.1970
Was habe ich falsch gemacht?
Danke
Gerd
Der folgende Beitrag wurde am 01. 02. 2004, 18:30 Uhr von Thomas Luethi veröffentlicht.
Hallo,
> $time = strtotime("+2 week", $zeit);
> Wobei $zeit = 31.01.2003 ist.
Der zweite Parameter von strtotime() muss ein Timestamp sein, kein String.
Und wenn schon Strings (im ersten Parameter),
dann bitte in der richtigen Reihenfolge (mm.dd.yyyy).
RTFM:
http://www.php.net/manual/de/function.strtotime.php
Gruesse,
Thomas
Der folgende Beitrag wurde am 01. 02. 2004, 18:34 Uhr von Thomas Luethi veröffentlicht.
Hallo,
> Und wenn schon Strings (im ersten Parameter [von strtotime()]),
> dann bitte in der richtigen Reihenfolge (mm.dd.yyyy).
Sorry, dort muss das Datum gemaess
http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html#SEC100
z.B. in folgendem Format sein:
1970-09-17 # ISO 8601.
70-9-17 # This century assumed by default.
70-09-17 # Leading zeros are ignored.
9/17/72 # Common U.S. writing.
Gruesse,
Thomas
--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (/faq/#Q-19).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
Der folgende Beitrag wurde am 01. 02. 2004, 18:52 Uhr von Gerd veröffentlicht.
> z.B. in folgendem Format sein:
> 1970-09-17 # ISO 8601.
> 70-9-17 # This century assumed by default.
> 70-09-17 # Leading zeros are ignored.
> 9/17/72 # Common U.S. writing.
Ich hab jetzt diesen Code:
$datum = date('m/d/Y');
$datum2 = strtotime("+2 week", $datum);
echo strftime("%d.%m.%Y", $datum2);
Und die Ausgabe: 15.01.1970
Was mache ich falsch?
MFG
Gerd
Der folgende Beitrag wurde am 01. 02. 2004, 19:02 Uhr von Thomas Luethi veröffentlicht.
Hallo,
> $datum = date('m/d/Y');
Du hast offenbar ein Problem, zwischen
abstrakt und konkret zu unterscheiden.
Abstrakt:
Der String soll im Format m/d/y sein.
Das heisst: Monat, dann Slash, dann Tag, dann Slash, dann Jahr.
Konkret:
Um einen konkreten String zusammenzubauen,
musst Du es z.B. so schreiben:
$d=31;
$m=1;
$y=2004;
$datumstring="$m/$d/$y";
oder (fuer das eindeutigere Format "y-m-d") so:
$datumstring="$y-$m-$d";
> Und die Ausgabe: 15.01.1970
> Was mache ich falsch?
Immer, wenn das Jahr 1970 vorkommt, ist das ein Hinweis
darauf, dass eine Umwandlung ins Unix-Timestamp Format
nicht funktioniert hat und dass deshalb ein Datum
als Timestamp "0", d.h. 01.01.1970, 00.00.00 Uhr
berechnet wurde...
Bitte lies das Manual-Kapitel zu den Datums- und Zeit-Funktionen
mal vollstaendig durch. Ebenso die dclp-FAQ zum Thema:
http://www.dclp-faq.de/ch/ch-datetime.html
Gruesse,
Thomas
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4