Paul Ranze: Wochentag und Datum generieren auslesen in 8 Wochen

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

  1. 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

    --
    Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
    Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    1. 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.

      1. 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

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
      2. 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.:

        • Jahreswechsel
        • Schaltjahre
        • Unterschiedliche Anzahl Tage pro Monat
          u.s.w.

        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

        --
        Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
        Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
        Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
  2. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
  3. 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®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. 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®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.