Zeitüberprüfung <>

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

  • Zeitüberprüfung <>

    Hallo,

    ich habe bislang eine funktionierende Zeitüberprüfung mit 4-stelliger Jahreszahl ausführen können (Wert in DB war z.B. 23.11.2008)

    -> Datum ins Format (tt.mm.jjjj) setzen:
    PHP-Code:
    $datum date("d.m.Y",$timestamp); 
    -> Der Befehl zum Vergleichen lautet:
    PHP-Code:
    if (strtotime($row["se_dat"])<time()) {
            echo 
    'bgcolor = "red";'
    Dieser bewirkt dass, wenn das eingetragene Datum vor dem aktuellen liegt, das Feld einen roten Hintergrund bekommt, was auch wunderbar funktioniert.

    Nun möchte ich allerdings dass das Datum nur noch 2-stellig angezeigt wird, habe dazu den Befehl abgeändert in
    PHP-Code:
    $datum date("d.m.y",$timestamp); 
    - das Datum wird auch nun richtig eingetragen (23.11.08).


    Aber das Hintergrundfeld wird nun entweder immer bei allen Einträgen in der Spalte oder gar nicht mehr eingefärbt.

    Kann mir jemand sagen was ich ändern muss, damit der Datums-Vergleich auch bei 2-stelliger Jahreszahl funktioniert?

  • #2
    Hinweis: Wenn die Jahreszahlenangabe zweistellig erfolgt, werden Werte zwischen 00 und 69 auf die Jahre 2000 bis 2069 gemappt, die Werte 70-99 ergeben die Jahreszahlen 1970-1999.
    von www.php.net/strtotime
    Wer anderen eine Grube gräbt, der hat ein Grubengrabgerät.

    Kommentar


    • #3
      Original geschrieben von herrmie
      von www.php.net/strtotime
      Danke für den Hinweis. Da in der Datenbank allerdings nur Daten seit diesem Jahr eingetragen werden - und bis 2069 noch ein wenig hin ist - sollte mir das keine Probleme bereiten, trotzdem danke für den Hinweis :-)

      Kommentar


      • #4
        Du vergleichst doch nicht mit der 2-stelligen Jahreszahl.
        $datum wird im if ja nirgends verwendet.
        Entweder hast du etwas an Code unterschlagen oder das ist nicht das Problem.

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von ghostgambler
          Du vergleichst doch nicht mit der 2-stelligen Jahreszahl.
          $datum wird im if ja nirgends verwendet.
          Entweder hast du etwas an Code unterschlagen oder das ist nicht das Problem.
          oha... da muss ich dir recht geben ... ich sehe gerade dass die Variable auch gar nicht zu diesen Feldern gehört ....
          $date wird auch eigentlich nur benutzt um in der Tabelle das aktuelle Datum als "Erfassungsdatum" einzutragen -

          das von mir zu vergleichende Feld bzw. Soll-Erledigt-Datum "se_dat" ist allerdings (ach herje ...) - ein String

          *räusper* Ist also ein "Datum" mit 4-stelliger Jahreszahl als String vergleichbar mit dem Wert time() und als 2-stellige Jahreszahl nicht?

          Btw: Wenn ich zum vergleichen time() benutze zeigt er kein Feld mit rotem Hintergrund an (also time() immer > se_dat), und wenn ich versuche ein Format vorzugeben mittels time(d.m.y) ist jedes Feld rot hinterlegt (also time(d.m.y) immer < se_dat) ...

          Kommentar


          • #6
            Du kannst nicht
            09-01-01 > 2008-03-15
            vergleichen. Was hoffentlich offensichtlich ist.

            Aber das if juckt dich doch auch gar nicht. Du willst doch nur die Ausgabe angepasst haben. Also passe die Ausgabe an, lass das if in Ruhe, und gut ist.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              Du kannst nicht
              09-01-01 > 2008-03-15
              vergleichen. Was hoffentlich offensichtlich ist.
              Ja, das ist offensichtlich :-)

              Aber ich möchte ja auch 09-01-01 > 08-03-15 vergleichen

              Kommentar


              • #8
                Original geschrieben von Lavingstar
                Aber ich möchte ja auch 09-01-01 > 08-03-15 vergleichen
                Warum?

                Wie gesagt, du willst NUR die Ausgabe ändern, also ändere auch NUR die >Ausgabe<.

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Original geschrieben von ghostgambler
                  Warum?
                  Wie gesagt, du willst NUR die Ausgabe ändern, also ändere auch NUR die >Ausgabe<.
                  Achso ... d.h. zwar in der DB 4-stellig abspeichern und nur 2-stellig anzeigen? Das würde das Ganze natürlich erheblich vereinfachen ...
                  Entschuldige bitte die "Noobfrage": Wie ändere ich NUR die Anzeige?

                  Kommentar


                  • #10
                    Original geschrieben von Lavingstar
                    Achso ... d.h. zwar in der DB 4-stellig abspeichern und nur 2-stellig anzeigen? Das würde das Ganze natürlich erheblich vereinfachen ...
                    Eben. Vor allem hast du - wenn du plötzlich auf die Idee kommst "Wieder 4-stellig" - nicht das Problem, dass das bei dutzenden von Jahreszahlen nicht funktioniert.

                    Entschuldige bitte die "Noobfrage": Wie ändere ich NUR die Anzeige?
                    Na ich weiß doch nicht was du für Code unter der Nase hast...
                    Wenn du damit alleine nicht klar kommst musst du halt die relevanten Code-Stellen posten.

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Also eingetragen in die DB bzw. angezeigt in der Tabelle wird der Wert ja nur mit

                      PHP-Code:
                      <td class="w110">'.$row["se_dat"].'</td
                      Muss ich vorher sowas deklarieren in der Form wie z.B.

                      PHP-Code:
                      $se_dat date("d.m.y",$timestamp); 
                      PS: Mit dem Code hab ichs nämlich schon versucht und damit klappts nicht

                      Kommentar


                      • #12
                        Original geschrieben von Lavingstar
                        PHP-Code:
                        $se_dat date("d.m.y",$timestamp); 
                        PS: Mit dem Code hab ichs nämlich schon versucht und damit klappts nicht
                        Neuer Code - neues Glück:

                        PHP-Code:
                        $row["se_dat"] = date("d.m.y",$timestamp); 
                        Jetzt ist die Formatierung der Jahreszahl zwar 2-stellig, allerdings wird angezeigt: 01.01.70 anstatt wie in dem DB-Feld hinterlegt 01.04.2009

                        Kommentar


                        • #13
                          PHP-Code:
                          <td class="w110">' . date("d.m.y", strtotime($row["se_dat"])) . '</td

                          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                          Wie man Fragen richtig stellt

                          Kommentar


                          • #14
                            Original geschrieben von ghostgambler
                            PHP-Code:
                            <td class="w110">' . date("d.m.y", strtotime($row["se_dat"])) . '</td
                            YES YES YES !!!!!! Damit gehts .... !!!
                            Echt super ... vielen vielen Dank !!

                            Kommentar

                            Lädt...
                            X