sortierisch: Zeitstempel und sortieren

Hallo,

für eine Sortierung (usort) gegebener Daten nach mehreren Kriterien benötige ich eine effiziente Umsetzung des Vergleich von Zeitstempeln (erhalten mittels time()).

Mögliche Kriterien:
gleiches Jahr
gleicher Monat des gleichen Jahres
gleicher Tag des gleichen Monats...
etc

Bei einer Umsetzung habe ich mittels getdate() die Zeitstempel zerlegt und die entsprechenden Zeitanteile nacheinander verglichen.
Das scheint soweit zu funktionieren, ist allerdings nicht sonderlich effizient.

Meine Frage:
Kann mir jemand effizientere Regeln/Methoden nennen mit denen sich die angebenen Kritieren aus den Zeitstempeln errechnen bzw. vergleichen lassen?

  1. Moin,

    Meine Frage:
    Kann mir jemand effizientere Regeln/Methoden nennen mit denen sich die angebenen Kritieren aus den Zeitstempeln errechnen bzw. vergleichen lassen?

    Ich hatte das mal mit einem Integerwert gelöst:
    20111118 -> JahrMonatTag (Wahlweise noch Stunden und Minuten)
    Dort kann man dann wie gewünscht entweder die ersten 4, 6 oder 8 Zeichen vergleichen, aber ob das effizienter ist...

    Grüße Marco

    1. Moin,

      Meine Frage:
      Kann mir jemand effizientere Regeln/Methoden nennen mit denen sich die angebenen Kritieren aus den Zeitstempeln errechnen bzw. vergleichen lassen?

      Ich hatte das mal mit einem Integerwert gelöst:
      20111118 -> JahrMonatTag (Wahlweise noch Stunden und Minuten)
      Dort kann man dann wie gewünscht entweder die ersten 4, 6 oder 8 Zeichen vergleichen, aber ob das effizienter ist...

      Wenn du schon einen Datentyp mit viel Overhead nutzen willst, dann bitte ISO 8601. Der hat zwar das Jahr-10000-Problem, ist aber für herkömmlichen Geschäftsverkehr ausreichend.

      1. Tach auch.

        Wenn du schon einen Datentyp mit viel Overhead nutzen willst, dann bitte ISO 8601. Der hat zwar das Jahr-10000-Problem, ist aber für herkömmlichen Geschäftsverkehr ausreichend.

        Meine Chefin lächelt immer, wenn ich ihr vom Jahr-10.000 Problem berichte und dass ich gerne Maßnahmen ergreifen würde, um dem aus dem Weg zu gehen. :(

        Bis die Tage,
        Matti

        1. Wenn du schon einen Datentyp mit viel Overhead nutzen willst, dann bitte ISO 8601. Der hat zwar das Jahr-10000-Problem, ist aber für herkömmlichen Geschäftsverkehr ausreichend.

          Meine Chefin lächelt immer, wenn ich ihr vom Jahr-10.000 Problem berichte und dass ich gerne Maßnahmen ergreifen würde, um dem aus dem Weg zu gehen. :(

          Das Jahr-10.000-Problem ist in der Praxis nur relevant, wenn man Zeiträumen in großen Dimensionen benötigt. z.B. in der Wissenschaft. Ein Kalender für Astronomische Ereignisse - da sind 8000 Jahre nicht relevant.

          Aktuell interessant ist aber langsam an das Jahr-2038-Problem zu denken, das wird uns vermutlich alle noch betreffen.

          1. Hello,

            Das Jahr-10.000-Problem ist in der Praxis nur relevant, wenn man Zeiträumen in großen Dimensionen benötigt. z.B. in der Wissenschaft. Ein Kalender für Astronomische Ereignisse - da sind 8000 Jahre nicht relevant.

            Außer in der Atomindustrie. Da kennen die das Problem nicht. Da haben sie ja Frau Merkel.

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Das Jahr-10.000-Problem ist in der Praxis nur relevant, wenn man Zeiträumen in großen Dimensionen benötigt. z.B. in der Wissenschaft. Ein Kalender für Astronomische Ereignisse - da sind 8000 Jahre nicht relevant.

              Außer in der Atomindustrie. Da kennen die das Problem nicht. Da haben sie ja Frau Merkel.

              Das ist doch egal wenn in den Abfällen einzelne Spaltprodukte enthalten sind, die bereits eine Halbwertszeit von mehreren Millionen Jahren haben - von einem Ende der Radioaktivität bzw. der Zerfallskette und dem übergang in stabile Elemente reden wir garnicht. Das kann dir Fr. Merkel aber sicher erklären.

  2. Hi!

    für eine Sortierung (usort) gegebener Daten nach mehreren Kriterien benötige ich eine effiziente Umsetzung des Vergleich von Zeitstempeln (erhalten mittels time()).

    Zeitstempel sind nicht besonders gut für das Rechnen geeignet, wenn man mehr als nur mit Sekunden betrachten will, weil er eben nur eine Sekundenanzahl speichert. Zudem ist die Umrechnung in andere Einheiten der Zeit nicht besonders einfach (60, 24, 365.25 vs. 1, 10, 100, 1000). Deshalb geht es garantiert nicht einfacher als mit den passenden Funktionen die benötigten Werte aus dem Timestamp zu extrahieren. getdate() kennst du ja schon, (gm)date() eignet sich auch noch. Und dann gibt es noch die DateTime-Klasse, mit der man auch noch Berechnungen an Datümern anstellen kann.

    Lo!