Brunfi: php tag

Hallo,

ich habe ein Datum in folgendem format: 20100327
wenn ich jetzt diese Funktion anwende

date("w","20100327")

dann kommt nicht das gewünschte Ergebnis 6, sondern 5

Was mache ich falsch?

Vielen Dank für Eure Hilfe

  1. Hello,

    ich habe ein Datum in folgendem format: 20100327
    wenn ich jetzt diese Funktion anwende

    date("w","20100327")

    dann kommt nicht das gewünschte Ergebnis 6, sondern 5

    Was mache ich falsch?

    Laut Handbuch soll das zweite Funktionsargument ein Integer sein, der den Unix-Timestamp repräsentiert. Dass hier ein String angenommen wurde, liegt sicherlich an der automatischen Typumwandlung von PHP und/oder dass das in der Funktion nicht sauber geprüft wird...

    Schau Dir mal die Funktion strtotime() an http://de3.php.net/manual/en/function.strtotime.php

    Mit deren Hilfe könntest Du aus Deinem ANSI-Datum erstmal einen Timestamp machen und den  dann wieder in date() einsetzen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. vielen Dank, Tom!
      funktioniert einwandfrei!

      viele Grüße
      Brunfi

    2. Hi Tom!

      Das fand ich richtig schön anschaulich - ich finde es sehr gut, wie sehr Du Dich hier reinhängst und so vielen Leuten konstruktiv Hilfe leistest.

      Woher nimmst Du nur, neben der Arbeit, die Zeit hier so aktiv zu sein?

      Die Frage geht auch an andere 'Stammposter': wie macht ihr das?

      Ich schaue hier häufig (fast täglich) vorbei, aber schreibe selten eine Antwort, weil mir oft die Zeit dazu fehlt.

      off:PP

      --
      "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
      1. Hello,

        das ist alles nur Anti-Alzheimer-Training

        Manchmal werden die Lücken dann aber leider größer

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
      2. Hallo,

        Woher nimmst Du nur, neben der Arbeit, die Zeit hier so aktiv zu sein?
        Die Frage geht auch an andere 'Stammposter': wie macht ihr das?

        das ist eigentlich ganz einfach. Bei mir ist der Übergang zwischen Beruf und Hobby fließend, es gibt sogar eine nicht zu vernachlässigende, nicht scharf abgrenzbare Schnittmenge. Beides bedingt eine nicht unerhebliche Zeit am PC. Und das Forum in einem Browserfenster im Hintergrund zu haben, ab und zu mal zu aktualisieren und hier und da mal eine Viertelstunde dafür zu investieren, ist kaum ein Aufwand.

        Ich schaue hier häufig (fast täglich) vorbei, aber schreibe selten eine Antwort, weil mir oft die Zeit dazu fehlt.

        Oh je ... keine Zeit zu haben, ist eine der ernstesten Krankheiten unserer Zeit.

        Schönes Wochenende,
         Martin

        --
        F: Was ist eigentlich aus deinem schlimmen Durchfall geworden?
        A: Mein Arzt hat mir Valium verschrieben.
        F: Und das hilft?
        A: Naja, ich mach mir immer noch in die Hose. Aber inzwischen ist es mir egal.
  2. Hallo Brunfi,

    ich habe ein Datum in folgendem format: 20100327
    wenn ich jetzt diese Funktion anwende

    date("w","20100327")

    mit 20100327 meinst du vermutlich den 27. März 2010, oder? Der zweite Parameter erwartet bei date() aber einen Unix-Timestamp, also die Anzahl der Sekunden die seit dem 1.1.1970 vergangen sind. Um aus deinem Datumsformat einen Timestamp zu machen, kannst du entweder das Datum auftrennen und mit mktime() einen Timestamp draus machen oder du verwendest strtotime(), die Funktion erkennt dein Datumsformat auch ohne weitere Umwandlungen.

    dann kommt nicht das gewünschte Ergebnis 6, sondern 5

    PHP denkt eben, dass du den Timestamp 20100327 meinst und der gehört eben zum 21. August 1970 und da das ein Freitag war bekommst du eben eine 5 ausgegeben.

    Grüß,
    Tobias