sakina: Datum vergleichen

hello,

ich will den Tag in der Variable $date, wo der Datum drin steht vergleichen, ob es der 2. Tag im Monat ist und zwar habe ich das so ausprobiert:

if(date("d", $date) == 02)
{
....
}

es funktioniert, aber nicht

der Montag im Juni dieses Jahr ist der 2. Tag und ich hab extra "print date("d", $date);" versucht, es wird 02 ausgegeben, aber die if Bedingung geht nicht

könntet Ihr mir bitte helfen...

danke im voraus

  1. Liebe sakina,

    ich will den Tag in der Variable $date, wo der Datum drin steht vergleichen,

    was _genau_ steht denn in $date? Es muss ein gültiger Timestamp sein...

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Liebe sakina,

      ich will den Tag in der Variable $date, wo der Datum drin steht vergleichen,

      was _genau_ steht denn in $date? Es muss ein gültiger Timestamp sein...

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      ist ein gültiger timestamp, das mache ich schon vor der if Bedingung

      $date = mktime ( 2, 0, 0, date ( "m" ), date ( "d" ), date ( "Y" ) );

      1. Hallo,

        ist ein gültiger timestamp, das mache ich schon vor der if Bedingung

        $date = mktime ( 2, 0, 0, date ( "m" ), date ( "d" ), date ( "Y" ) );

        ich glaub Felix wollte eher wissen ob du $date mal ausgegeben hast um sicher zu gehn, dass das drin steht was soll.

        Grüße, Matze

        1. ich glaub Felix wollte eher wissen ob du $date mal ausgegeben hast um sicher zu gehn, dass das drin steht was soll.

          Grüße, Matze

          Ja habe ich, ist pikopello :)

          mfg,
          sakina

  2. Hi,

    if(date("d", $date) == 02)

    der Montag im Juni dieses Jahr ist der 2. Tag und ich hab extra "print date("d", $date);" versucht, es wird 02 ausgegeben, aber die if Bedingung geht nicht

    Kann es sein, dass es sich um einen String und nicht um eine Zahl handelt? Zahlen werden normal ohne führende 0 dargestellt.
    Versuch mal "02" statt 02.

    mfG,
    steckl

    1. Hi,

      if(date("d", $date) == 02)

      der Montag im Juni dieses Jahr ist der 2. Tag und ich hab extra "print date("d", $date);" versucht, es wird 02 ausgegeben, aber die if Bedingung geht nicht

      Kann es sein, dass es sich um einen String und nicht um eine Zahl handelt? Zahlen werden normal ohne führende 0 dargestellt.
      Versuch mal "02" statt 02.

      mfG,
      steckl

      hab ich schon ausprobiert ging nicht :(
      trotzdem Danke :)
      LG
      sakina

  3. Hi,

    if(date("d", $date) == 02)

    date("d", $date) liefert einen String mit 2 Ziffern (die erste ist ggf. ne 0).

    02 ist die Oktaldarstellung der Zahl 2.

    Wenn Du einen String mit einer Zahl (in Deinem Fall 2) vergleichst, wird die Zahl in einen String umgewandelt, aus der Zahl 2 wird der String "2".

    "02" ist nicht gleich "2", also ist die Bedingung falsch.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. ich probier das mal aus

      Danke,
      lg,
      sakina

    2. Hi Mudguard,

      date("d", $date) liefert einen String mit 2 Ziffern (die erste ist ggf. ne 0).

      02 ist die Oktaldarstellung der Zahl 2.

      Wenn Du einen String mit einer Zahl (in Deinem Fall 2) vergleichst, wird die Zahl in einen String umgewandelt, aus der Zahl 2 wird der String "2".

      das stimmt so nicht, das Gegenteil ist der Fall: der (numerische) String wird zu einer Zahl konvertiert. Siehe auch PHP: Comparison Operators, wo es heißt: "If you compare an integer with a string, the string is converted to a number. If you compare two numerical strings, they are compared as integers.". Z.B.:

      ag@bart:~$ php -r 'var_dump("02" == 02);'
      bool(true)

      Darüber hinaus ist dein Hinweis, dass 02 eine Oktalschreibweise ist, richtig und insbesondere wichtig für den OP, da dadurch z.B. bei Tag 8 auch die automatische Konvertierung des Strings nicht mehr weiterhilft:

      ag@bart:~$ php -r 'var_dump("08" == 08);'
      bool(false)

      Gruß,
      Andreas.

      1. Hi,

        das stimmt so nicht, das Gegenteil ist der Fall: der (numerische) String wird zu einer Zahl konvertiert.

        Vergibst Du mir, unter Berücksichtigung der Tatsache, daß das Posting ca. 11 Stunden vor Anmeldung im Krankenhaus und ca. 14 Stunden vor einer Operation an mir entstanden ist?
        Da war ich wohl schon leicht aufgeregt und hab das durcheinandergeschmissen.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hi Andreas,

          Vergibst Du mir, unter Berücksichtigung der Tatsache, daß das Posting ca. 11 Stunden vor Anmeldung im Krankenhaus und ca. 14 Stunden vor einer Operation an mir entstanden ist?

          wenn du das Posting während der Operation an dir verfasst hättest... *g*

          Aber Spaß beiseite:

          1. steht es mir nicht zu, dir irgendwas zu vergeben
          2. gibt es hier nichts zu vergeben
          3. stünde es mir zu und gäbe es was zu vergeben, täte ich es :)
          4. ich wollte nur den Fehler nicht so stehenlassen
          5. ich wünsche dir in jedem Fall gute Besserung!

          Gruß,
          Andreas.

          1. Hi,

            wenn du das Posting während der Operation an dir verfasst hättest... *g*

            Die haben mir nicht erlaubt, den Laptop mit in den OP zu nehmen ...

            1. steht es mir nicht zu, dir irgendwas zu vergeben

            doch.

            1. gibt es hier nichts zu vergeben

            doch.

            1. stünde es mir zu und gäbe es was zu vergeben, täte ich es :)

            gut.

            1. ich wollte nur den Fehler nicht so stehenlassen

            gut.

            1. ich wünsche dir in jedem Fall gute Besserung!

            Danke! Geht schon wieder ganz gut (solange ich keine Hose mit festem Bund anziehe, das drückt auf den Schnitt).

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  4. hello,

    ich will den Tag in der Variable $date, wo der Datum drin steht vergleichen, ob es der 2. Tag im Monat ist und zwar habe ich das so ausprobiert:

    if(date("d", $date) == 02)
    {
    ....
    }

    es funktioniert, aber nicht

    der Montag im Juni dieses Jahr ist der 2. Tag und ich hab extra "print date("d", $date);" versucht, es wird 02 ausgegeben, aber die if Bedingung geht nicht

    könntet Ihr mir bitte helfen...

    danke im voraus

    es geht beides, also auch == 02 oder nur 2, mein fehler war das ich schon vorher in einer funktion in Funktion.inc, die gleiche abfrage  gemacht habe. somit war es nie möglich, dass der 2. Tag in der variable $date drin war.

    Danke, Danke für eure Hilfe, ein sehr groseß DANKESCHÖN :)
    mfg,
    Sakina