Wochentag und Datum generieren auslesen in 8 Wochen
Paul Ranze
- php
0 Thomas Luethi0 Paul
0 lulu0 fastix®0 fastix®
Hallo,
ich möchte gerne mit PHP den Wochentag mit Datum jeweils für die nächsten 8 Wochen ab Server Datum auslesen.
Weiß jemand wie ich das anstelle oder wie ich am besten vorgehen soll?
Das wichtige ist, es muß mir das richtige Datum angezeigt werden.
Gruß Paul Ranze
Hallo,
ich möchte gerne mit PHP den Wochentag mit Datum jeweils für die nächsten 8 Wochen ab Server Datum auslesen.
Was willst Du genau?
Das Datum von heute in 8 Wochen?
Bitte beschreibe Dein Vorhaben genauer.
Weiß jemand wie ich das anstelle oder wie ich am besten vorgehen soll?
Lies mal das Kapitel zu den Datums- und Zeit-Funktionen durch:
http://www.php.net/manual/de/ref.datetime.php
Da gibt es viele praktische Funktionen.
strtotime("+8 weeks")
waere mal ein Anfang...
Gruesse,
Thomas
strtotime("+8 weeks")
waere mal ein Anfang...
Hallo Thomas
Da bekomme ich den UNIX Time Stamp zurück aber das ist voll die komsiche Zahl "1078311627" Sieht irgendwie nach einen Schlüssel aus.
Ich weiß gar nicht was mir das bringen soll oder wieso man so ein Schlüssel erzeugen sollte?
Ich habe eher daran gedacht das er mir sagt das in 8 Wochen Dienstag der 24 Februar 2004 ist und morgen würder er mir sagen ist Mittwoch der der 25 Februar bei der selben Rechnung.
Hallo Paul,
Da bekomme ich den UNIX Time Stamp zurück aber das ist voll die komsiche Zahl "1078311627" Sieht irgendwie nach einen Schlüssel aus.
nein, das ist die Anzahl der Sekunden seit dem 1.1.1970 (in dem Fall zwischen 1.1.1970 0h und dem 3.3.2004 12h). Um aus dem Timestamp ein Datum zu machen, brauchst du date() (->http://de.php.net/date).
Grüße aus Nürnberg
Tobias
Hallo,
Da bekomme ich den UNIX Time Stamp zurück aber das ist voll die komsiche Zahl "1078311627" Sieht irgendwie nach einen Schlüssel aus.
Wie schon Tobias schrieb, und wie Du auch selbst haettest herausfinden koennen,
ist der Unix-Timestamp die Anzahl Sekunden seit dem 01.01.1970, 00.00.00 Uhr.
Und wie er auch schrieb, solltest Du Dir die Funktion date() anschauen,
die den Timestamp wieder in ein "menschliches" Format umwandelt.
Um den Timestamp von "Jetzt in 8 Wochen" zu kriegen,
koennte man (bzw. muesste man, wenn es die Funktion
strtotime() noch nicht gaebe) auch einfach zum
"Timestamp von Jetzt" die Anzahl Sekunden
dazuzaehlen, die in 8 Wochen enthalten sind:
$jetzt_in_8_wochen=time() + 8*7*24*60*60;
strtotime() hat gegenueber der reinen Timestamp-Rechnerei
aber oft den Vorteil, dass man sich nicht mit den gaengigen
Problemchen der Datumsberechnung auseinandersetzen muss,
wie z.B.:
Ich habe eher daran gedacht das er mir sagt das in 8 Wochen Dienstag der 24 Februar 2004 ist und morgen würder er mir sagen ist Mittwoch der der 25 Februar bei der selben Rechnung.
Heute in 8 Wochen ist uebrigens der 2. Maerz.
Du hast Dich beim Umblaettern in der Papier-Agenda wohl verzaehlt...
Ein Beispiel:
PHP-Code:
$heutetimestamp=time();
$heutedmy=date("l d. F Y H:i:s");
$heuteplus8timestamp=strtotime("+8 weeks");
$heuteplus8dmy=date("l d. F Y H:i:s",$heuteplus8timestamp);
print("<p>Jetzt: $heutedmy (Timestamp: $heutetimestamp)</p>\n");
print("<p>Jetzt in 8 Wochen: $heuteplus8dmy (Timestamp: $heuteplus8timestamp)</p>\n");
Ausgabe:
Jetzt: Tuesday 06. January 2004 22:42:48 (Timestamp: 1073425368)
Jetzt in 8 Wochen: Tuesday 02. March 2004 22:42:48 (Timestamp: 1078263768)
Die Wochentage und Monatsnamen sind in normalerweise Englisch.
Wenn Du etwas Glueck hast, kannst Du mit
setlocale(LC_TIME,"de_DE","de","ge");
(oder aehnlich) den Server dazu bringen, diese Namen
auf Deutsch zu erzeugen.
Dann musst Du statt date() allerdings strftime() nehmen,
um den Timestamp ins "menschliche" Format umzuwandeln.
http://www.php.net/manual/de/function.setlocale.php
http://www.php.net/manual/de/function.strftime.php
PHP-Code:
setlocale(LC_TIME,"de_DE","de","ge");
$heutedmylokal=strftime("%A %d. %B %Y");
print("<p>Heute (evtl. deutsch): $heutedmylokal</p>\n");
Ausgabe je nach Server:
Heute (evtl. deutsch): Dienstag 06. Januar 2004
oder eben
Heute (evtl. deutsch): Tuesday 06. January 2004
Ob setlocale() erfolgreich war (oder es zumindest behauptet)
kannst Du z.B. so herausfinden:
if (setlocale(LC_TIME,"de_DE","de","ge"))
{ print("<p>Setlocale war angeblich erfolgreich</p>\n"); }
else
{ print("<p>Setlocale war offenbar nicht erfolgreich</p>\n"); }
Weil setlocale() auf vielen Servern nicht recht funktioniert,
basteln viele PHP-Autoren lieber eine eigene Uebersetzung
der Wochentage u.s.w., z.B. mit Arrays.
Wenn es aber mit setlocale() und strftime() klappt, dann ist das
natuerlich die einfachste, eleganteste und sinnvollste Loesung.
Gruesse,
Thomas
Huhu Paul
ist eigentlich sehr einfach, ungefähr so sollte es klappen:
$futuredate = time() + 8*7*24*60*60;
date('d.m.Y', $futuredate);
Viele Grüße
lulu
Moin!
<?
$time=mktime();
for ($i=0; $i < 366; $i++) {
$time=$time+84600;
echo date("d.m.Y", $time)."<br>";
}
?>
Wenn Du es damit nicht hinkriegst... naja. Dann solltest Du darüber nachdenken, ob Du noch programmieren willst. Ach so. Wir haben ein Schaltjahr...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
Moin!
<?
$time=mktime();
for ($i=0; $i < 366; $i++) {
$time=$time+84600;
echo date("d.m.Y", $time)."<br>";
}
?>
Ups. Der Tag 86400 Sekunden (kleiner Vertipper).
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®