Ankündigung

Einklappen
Keine Ankündigung bisher.

negative Timestamps

Einklappen

Neue Werbung 2019

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

  • negative Timestamps

    Hallo allersets!

    Ich hab ein eher ungemütliches Problem! Die timestamps fangen erst am 1.1.1970 an, ich benutz die aber für geburtsdaten. die date Funktion gibt nichts aus, wenn man ihr eine negative timestamp übergibt (mktime hat diese aber brav ausgerechnet).

    Gibts da eine andere date Funktion dies mir ermöglicht negative Zeitstempel auszulesen, oder mussi nun doch wieder zum substringen von Sätzen á la 20050512 zurück?


  • #2
    Bei einigen Betriebsystemen (u.a. Windows) werden negative Timestamps nicht unterstützt. Möglicherweise ist das dein Problem.

    Kommentar


    • #3
      Hab Mandriva Linux 2006.0
      und am Server Debian Sarge 3.0
      Beide fangen beim 1.1.1970 an.
      Aber ob die date Funktion negative Stempel umrechnet hat ja nicxhts mit dem Betriebssystem zu tun, das Betriebssystem liefert ja nur den aktuellen Zeitsteempel wenn benötigt, wenn ich der date den Stempel direkt gib, rechnet sie den doch nur um.

      Kommentar


      • #4
        Mit dem Timestamp kann man erst ab 1970 rechnen. Am besten du übergibt das an ne andere funktion oder so wenn du merkst dass ein datum schon älter als 1.1.1970 ist.

        Kommentar


        • #5
          Und dazu ruft php Bibliotheksfunktionen auf, deren Verhalten schon mehr oder weniger stark an das Betriebssystem gekoppelt sind.
          Die Aussage
          Bei einigen Betriebsystemen (u.a. Windows) werden negative Timestamps nicht unterstützt.
          ist so allgemein übrigens nicht korrekt.
          PHP-Code:
          <?php
          $ts 
          = -86400*365;
          echo 
          date('d.m.Y'$ts);
          ?>
          php 5.1.1, windows xp prof sp2. Ausgabe: 01.01.1969

          Kommentar


          • #6
            Zitat von Bruchpilot
            php 5.1.1, windows xp prof sp2. Ausgabe: 01.01.1969
            Nicht jeder darf sich so glücklich schätzen... :wink:

            Kommentar


            • #7
              ist so allgemein übrigens nicht korrekt.
              bleibt davon unberührt.

              Kommentar


              • #8
                Zitat von Bruchpilot
                Die Aussage
                Bei einigen Betriebsystemen (u.a. Windows) werden negative Timestamps nicht unterstützt.
                ist so allgemein übrigens nicht korrekt.
                PHP-Code:
                <?php
                $ts 
                = -86400*365;
                echo 
                date('d.m.Y'$ts);
                ?>
                php 5.1.1, windows xp prof sp2. Ausgabe: 01.01.1969
                Danke für den Hinweis. Das war mir so nicht bekannt.

                Kommentar


                • #9
                  Na dann bleibt mir wohl nichts anderes als zurück zum datumdirekteingeben

                  Danke für die Beiträge

                  Und diese Weihnachtssmilies find ich total gail ^^

                  Kommentar


                  • #10
                    Wisst ihr was, ich hab mir gerade überlegt, dass ich einfach eine eigene Zeitstempelfunktion progge.

                    Was ich berücksichtigen muss:
                    -- Winter, Sommerzeit <= Kennt wer die genauen Kriterien?
                    -- Schaltjahre <= das is leicht is_int($jahr/4)

                    Mein Zeitstempel wird am 1.1.2000 um 00:00:00 MEZ beginnen.
                    Weiß jemand wie ich das mit dem Jahr Null handhaben muss? Das hat die Kirche ja glaub ich vergessen oder so.

                    Bin für alle Tips offen ... wäre gut, wenn man mich über alle eventualitäten die euch so einfalle informiert bbevor ich richtig anfange. Schwerer als der HTML Parser den ich geschrieben hab wird sicher nciht sein.

                    Und wisst ihr was ich auch unbedingt will, das die Funktion kann? Wenn ich einen Zeitstempel A und einen Zeitstempel B eingib, dass sie mir ausspuckt, je nachdem was ich haben will, wieviele Sekunden, Tage, Monate, Jahre dazwischen liegen.

                    So eine Funktion wäre mehr als praktisch.

                    Kommentar


                    • #11
                      Zitat von EaStErDoM
                      -- Schaltjahre <= das is leicht is_int($jahr/4)
                      nicht ganz, siehe dazu: Wikiepdia - Schaltjahr

                      hier noch was zu Sommerzeit:

                      Wikipedia - Sommerzeit
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        Bist du denn überhaupt zwingend auf UNIX-Timestamps angewiesen? In einer MySQL-Datenbank bietet sich zum Beispiel der Datentyp DATETIME an, der auch mit wesentlich größeren Zeitspannen zurecht kommt.

                        Kommentar


                        • #13
                          Vorsicht: nicht jedes 4. Jahr ist ein Schaltjahr. Die Hunderter nämlich nicht !!
                          Also 2000 ist ein Schaltjahr, weil es ein Tausender ist.
                          1900 ist dagegen kein Schaltjahr.

                          Kommentar


                          • #14
                            Zitat von malabarista
                            Also 2000 ist ein Schaltjahr, weil es ein Tausender ist.
                            hat nichts mit Tausender zu tun, war nur ein Schaltjahr, weils man die Zahl 2000 ohne Rest durch 400 Teilen kann.

                            genau wie 1600

                            steht ja auch im Link das ich gepostet habe..
                            Wie man Fragen richtig stellt

                            Kommentar


                            • #15
                              Wozu? Speicher deine Geburtsdaten eben im DATETIME-Format.

                              Was kann denn dein HTML-Parser bzw. was soll das sein?

                              Und kennst du den Modulo-Operator und die Regeln für Schaltjahre?
                              Schaltjahre werden noch zusätzlich dadurch berechnet, dass volle Jahrhunderte keine Schaltjahre sind, es sei denn, sie sind ohne Rest (siehe Modulo) durch 400 teilbar.

                              Deine Methodik mit is_int() mag vielleicht funktionieren und auch die Berechnung der Schaltjahre. Schlampig ist es trotzdem und irgendwann wenn du wieder mal was programmierst und wieder nicht sauber, dann gehts halt mal nicht. Deshalb: gewöhn dir lieber gleich an, sauber zu programmieren

                              Kommentar

                              Lädt...
                              X