Timestamp von jeweils nächsten Montag bzw Freitag bestimmen
Schnaps
- php
Hallo
Ich möchte gerne ein Script schreiben in dem die Leute im ersten Schritt eine Woche auswählen können die sie editieren wollen.
Dafür soll ein Dropdown Menü erstellt werden in dem steht
1-Aktuelle Woche (Montag Datum bis Freitag Datum)
2-Nächste Woche (Montag Datum bis Freitag Datum)
2-Übernächste Woche (Montag Datum bis Freitag Datum)
Wie bekomme ich nun die Daten von den jeweiligen Montagen und Freitagen?
Hoffe das ihr mir helfen könnt.
Danke
Schnaps
Hi,
es gibt tatsächlich kein difftime() o.ä. in PHP?
Na, dann von Hand:
Dafür soll ein Dropdown Menü erstellt werden in dem steht
1-Aktuelle Woche (Montag Datum bis Freitag Datum)
2-Nächste Woche (Montag Datum bis Freitag Datum)
2-Übernächste Woche (Montag Datum bis Freitag Datum)Wie bekomme ich nun die Daten von den jeweiligen Montagen und Freitagen?
getdate() füllt ein Array mit Daten, die es aus der übergebenen Zeit (in Sekunden seit der Epoche) herausfummelt. Wird nichts übergeben, wird das aktuelle Datum ausgegeben.
(Beispiel aus Selfphph geklaut)
<?PHP
$zeit = time();// ist nötig, da es um Mitternacht herum sonst
// schwierig würde ;-)
$datum = getdate($zeit);
echo "Seconds: ". $datum[seconds] . "<br>";
echo "Minutes: ". $datum[minutes] . "<br>";
echo "Hours: ". $datum[hours] . "<br>";
echo "Monthday: ". $datum[mday] . "<br>"; //Tag im Monat (1-31)
echo "Weekday: ". $datum[wday] . "<br>"; // Tag in der Woche (0-6!)
echo "Month: ". $datum[mon] . "<br>";
echo "Year: ". $datum[year] . "<br>";
echo "Yearday: ". $datum[yday] . "<br>";
echo "Weekday: ". $datum[weekday] . "<br>";
echo "Monthname: ". $datum[month] . "<br>";
?>
Ausgabe für heute, Freitag, den 27. August 2004:
Seconds: 41
Minutes: 38
Hours: 11
Monthday: 27
Weekday: 5
Month: 8
Year: 2004
Yearday: 239
Weekday: Friday
Monthname: August
Mittels setlocale() dürfte sich normalerweise auch Deutsch einstellen lassen. Ob sich dann aber die Zählung der Wochentage ändert ist unbekannt, hier funktioniert es z.B. nicht.
So, damit kennst Du den aktuellen Tag, daraus kannst Du den Anfang der Woche ziehen. Soweit noch kein Problem. Nun gibt es aber scheint's doch eine Art difftime() namens strtotime():
$lastweek = ($datum[wday] % 6);
$tmp = "-1 week -" . $lastweek . " day";
echo "tmp = " . $tmp . "<br>";
$newtime = strtotime($tmp);
echo "newtime = " . $newtime . "<br><br>";
$datum = getdate($newtime);
echo "Letzte Woche, gleiche Zeit: <br>";
echo "<br>";
echo "Seconds: ". $datum[seconds] . "<br>";
echo "Minutes: ". $datum[minutes] . "<br>";
echo "Hours: ". $datum[hours] . "<br>";
echo "Monthday: ". $datum[mday] . "<br>";
echo "Weekday: ". $datum[wday] . "<br>";
echo "Month: ". $datum[mon] . "<br>";
echo "Year: ". $datum[year] . "<br>";
echo "Yearday: ". $datum[yday] . "<br>";
echo "Weekday: ". $datum[weekday] . "<br>";
echo "Monthname: ". $datum[month] . "<br>";
echo "<br>";
Das ist ein wenig komplizierter als üblich, aber ich war um Deutlichkeit bemüht ... äh ... ;-)
Wenn Du das oben heute ausführst bekommst Du den Sonntag heraus, denn am Sonntag fängt in den USA die Woche an. Aber eins dazu addieren wirst Du ja wohl noch können, oder? ;-)
Aus dem Array oben läßt sich dann mit strftime() etwas hübsches formatieren, z,.B. einen Kalender.
echo strftime("%A, %d-%m-%Y %R", $time)
so short
Christoph Zurnieden
Moin Schnaps,
Wie bekomme ich nun die Daten von den jeweiligen Montagen und Freitagen?
das hier sollte dir weiter helfen:
http://us3.php.net/manual/de/function.mktime.php
Grüsse
Mike