Variabel vom Text- zu Zahlenformat?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variabel vom Text- zu Zahlenformat?

    Hallo zusammen

    Mit einem Split-Befehl zerlege ich ein Datum in seine Einzelteile und mache dann daraus einen Timestamp:

    $datum="01.01.2001"
    $timestamp=split("[.]",$datum);
    $timestamp=mktime(0,0,0,$timestamp[1],$timestamp[0],$timestamp[2]);

    Nun gibt mir die Seite folgende Fehlermeldung zurück:
    "mktime() expects parameter 5 to be long, string given in ..."

    Nach einigem googeln, scheint es soh, dass die timestamp-array-werte nun vom Text ins Zahlenformat umgewandelt werden müssen, um diese Fehlermeldung zu eliminieren. Kann mir jemand sagen, wie das geht?

    Gruss

  • #2
    Die Typen umwandlung würde PHP automatisch machen (type juggling) ich glaube viel eher das dein Split nicht funktioniert. "." heißt nämlich "jedes erdenkliche zeichen".

    Benutze doch einfach explode() da kannst du einen String angeben. Oder escape den Punkt, macht aber wenig sinn da der Reguläre Ausdruck unnötig ist.
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      Sorry! Habe einen anderen Fehler gehabt. Und zwar war die Variabel $datum leer.

      Zu dumm. Sorry.

      Trotzdem: Sollte ich überall split mit explode ersetzen? Was ist dessen Vorteil?
      Zuletzt geändert von domendo; 31.08.2007, 10:20.

      Kommentar


      • #4
        Die Fkt erwartet gemäss Manual int ! Was übergibst du ? Richtig Strings. Also vor jedes Argument mal ein intval()
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Original geschrieben von jahlives
          Die Fkt erwartet gemäss Manual int ! Was übergibst du ? Richtig Strings. Also vor jedes Argument mal ein intval()
          Macht PHP aber trotzdem automatisch.

          Trotzdem: Sollte ich überall split mit explode ersetzen? Was ist dessen Vorteil?
          split() benutzt du falls du anhand eines Regulären Ausdrucks trennen willst. Wenn es immer ein Fester String ist (also z.B. ein Punkt oder ähnliches) ist explode() sinnvoller. Jedenfalls ist es performanter, ansonsten machts vermutlich keinen Unterschied.
          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

          Kommentar


          • #6
            Macht PHP aber trotzdem automatisch.
            Da sagt die Fehlermeldung aber etwas anderes
            imho wird das PHP nur machen wenn die Zahl '1' wäre. Ein '01' kann imho nicht automatisch auf Integer gecasted werden, weil der "beste" Typ für 01 einfach ein String ist und kein Integer.
            @topicstarter
            Trage das Datum mal so ein: 1.1.2001 und schau ob der Fehler auch ohne intval() auftritt.

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Das intval() habe ich ausprobiert. Aber das wars nicht. Wie gesagt. Das Problem war, dass $datum leer war. Habs jetzt mit einer IF-Schlaufe abgefangen.

              Merci trotzdem.

              Kommentar


              • #8
                Nagut mag sein das mit 01, ich sag nixmehr.
                Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                Kommentar

                Lädt...
                X