probleme mit date("d")-1

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

  • probleme mit date("d")-1

    hallo!
    wie die überschrift schon sagt, habe ich probleme mit der "führenden null" bei date("d")-1;
    ich möchte mir den tag gestern in der form 20070501134608 (heute: 20070502134608) ausgeben lassen.
    das mache ich so:
    PHP-Code:
    $Std=date("H");
    $Min=date("i");
    $Sek=date("s");
    $Mon=date("m");
    $Tag=date("d");
    $TagGestern=date("d")-1;
    $Jahr=date("Y");
    $ZeitGestern="$Jahr$Mon$TagGestern$Std$Min$Sek"
    jetzt fällt mir auf, dass er sich ein wenig "verrechnent", d.h. er gibt 2007051134608, also nicht 0501 sondern 051 aus. das erzeugt im weiteren script fehler.
    was kann ich tun? wo ist der fehler?

    danke!!

  • #2
    Die Rechenoperation macht aus tag_gestern wieder eine normale Zahl ohne führende Null.
    Abhilfe:
    http://de.php.net/strrpad

    Kommentar


    • #3
      Ich vermute du hast ein typisches PHP Type Cast Problem. date('d') gibt dir einen String !! zurück (01 ist KEIN Integer und kein gültiger Zahlwert). Jetzt ziehst du von diesem String 1 ab, was aber dazu führt, dass PHP den String erst auf Integer casted und damit die führende 0 verliert.
      PHP-Code:
      $TagGestern date('d',strtotime('now - 1 day')); 
      Gruss

      tobi
      Zuletzt geändert von jahlives; 02.05.2007, 14:09.
      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


      • #4
        im übrigen hast Du bei deiner ausgabe sicher immer ein Problem am ersten jeden Monats, da kommt dann der 0. raus....
        Du solltest dann mktime nehmen
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          PHP-Code:
          $TagGestern date('d',strtotime('now - 1 day')); 
          danke, dass klappt.
          ABER: wie behandelt strtotime das von MelloPie angesprochenen Problem mit dem Monatsersten? Macht strtotime aus 01.05.2007 den 30.04.2007? oder 00.05.2007?

          Kommentar


          • #6
            strtotime() hat sogar mit Schaltjahren keine Probleme. Wird dir also garantiert keinen 0. Mai zurückgeben
            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
              Mußt halt auch die anderen Datumsbestandteile mit strtotime() mitnehmen.

              Kommentar


              • #8
                Danke!!

                Kommentar


                • #9
                  Original geschrieben von websdream
                  ABER: wie behandelt strtotime das von MelloPie angesprochenen Problem mit dem Monatsersten? Macht strtotime aus 01.05.2007 den 30.04.2007? oder 00.05.2007?
                  Clever man gives it a try, where dumb man just asks.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    gibst du eigentlich zu jeden thread deinen senf ab? die meisten antworten von dir sind nicht wirklich hilfreich und zeugen von anscheinender langeweile.
                    kannst ja hiermal was ergänzen, dann haste was zutun http://de.wikipedia.org/wiki/Langeweile

                    Kommentar


                    • #11
                      Original geschrieben von websdream
                      die meisten antworten von dir sind nicht wirklich hilfreich
                      Die meisten deiner Fragen sind nicht wirklich nötig (wenn du solchen Kleinkram einfach mal kurz selber ausprobieren würdest) ...
                      und zeugen von anscheinender langeweile.
                      ... und zeugen entweder von deiner Faul- oder Dummheit.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Hallo,

                        Original geschrieben von websdream
                        gibst du eigentlich zu jeden thread deinen senf ab? die meisten antworten von dir sind nicht wirklich hilfreich und zeugen von anscheinender langeweile.
                        kannst ja hiermal was ergänzen, dann haste was zutun http://de.wikipedia.org/wiki/Langeweile
                        da muss ich websdream mal Recht geben.
                        Das betrifft nicht nur wahsaga sonder auch andere User,
                        die hier in letzter Zeit solche Antworten geben:

                        Benutze doch die Suchfunktion
                        Schaue dort und dort nach
                        und ähnliche Antworten kommen.

                        Das könnte man auch freundlicher rüberbringen.


                        Grüße von Sven

                        Kommentar


                        • #13
                          es gibt leute die nutzen foren zur selbstbeweihreucherung und freuen sich, wenn sie sich mit ihren steigenden beitragszahlen von rang zu rang hocharbeiten. damit kann man toll angeben....
                          denen ist jedes mittel recht, hauptsache die beitragszahl steigt und steigt - egal was für ein mist geschrieben wird.

                          so far.....

                          Kommentar


                          • #14
                            Original geschrieben von Sven4972
                            Hallo,



                            da muss ich websdream mal Recht geben.
                            Das betrifft nicht nur wahsaga sonder auch andere User,
                            die hier in letzter Zeit solche antworten geben:

                            Benutze doch die Suchfunktion
                            Schaue dort und dort nach
                            und ähnliche Antworten kommen.

                            Das könnte man auch freundlicher rüberbringen.


                            Grüße von Sven
                            Letzteres stimmt. Aber daß man sich mit der Suche selbst helfen kann, und daß ein Forum nicht dazu da sein kann, bereits 500 mal abgehandelte Fragen, und Fragen, die man durch einfaches ausprobieren selbst lösen könnte, zu beantworten, ignorieren zu viele hier.

                            Kommentar


                            • #15
                              auch richtig! pekka!
                              aber: ein forum wie dieses würde nicht existieren können, wenn alle mitglieder immer jedes neue problem selbständig lösen würden...
                              die ganzen inputs aus einem forum würden auf den heimrechnern verlorengehen und nicht anderen - die vielleicht intensiv die suchfunktion nutzen - helfen.

                              es gilt sich wissen von anderen schneller zu nutzen zu machen oder gemeinsam lösungen zu erarbeiten, ohne tage und wochen damit zu verbringen eine eigene lösung zu finden, oder?!

                              im übrigen hab ich mein problem "probleme mit date("d")-1" nicht in dieser form gefunden....

                              Kommentar

                              Lädt...
                              X