Ich brauche eine Möglichkeit Serialisierung und Deserialisierung von Daten, die möglicherweise in der Vergangenheit weit entfernt sind, zum Beispiel -10000
Ich schaue zuerst auf ISO8601, aber es scheint keine Jahre mit mehr als vier Ziffern zu unterstützen. (Oder zumindest Python-Bibliotheken, die ich versucht habe, nicht.)
Die verschiedenen Lösungen, die ich mir vorstellen kann:
year:month:day:hour:minute:second
(das Rad neu erfinden, da ich mit Zeitzonen usw. umgehen muss.) -9999
(oder 0
) anders als nach denen, da zu dieser Zeit kein Zeitzonenproblem / Schaltjahre / ... aufgetreten ist. (zwei verschiedene Formate am selben Ort) Siehst du irgendeinen anderen Weg, der besser wäre als diese? Oder empfehle einen von denen?
Sie könnten eine Seite von den Astronomen nehmen. Sky Maps erklären sie eine lange Zeit Präzession der Erde Spin durch Etablierung von Epochen. (Der Himmel ist anders, wenn Sie jetzt gegen 10.000 BC schauen.)
Erstellen Sie eine neue Klasse mit einer "Epoche" -Nummer und einem Fassadenmuster Ihrer aktuellen Datumsklasse. Die neue Klasse enthält zwei private Felder für epoch und internal-date. Ihr Konstruktor setzt epoch auf (Jahr div 10000) und instanziiert das interne Datum mit (Jahr modulo 10000). Ich hoffe, dass das restliche Fassadenmuster so offensichtlich ist wie ich denke.
ISO 8601
unterstützt Datumsangaben mit mehr als 4 digits
if und nur, wenn sie signiert sind. Die einzige PHP
-Funktion, die ich kenne, die diese Funktionalität unterstützt, ist
Offensichtlich ist es ein Schmerz, zu verwenden, weil es erfordert, die Versätze von vollkommen guten Tag- / Monatspaaren zu berechnen. Das heißt, Sie sollten in der Lage sein BC-Daten zu erstellen, indem Sie das Jahr mit einem '-' (Minuszeichen) signieren.
Dann würden Sie das Datum mit
ausgeben %Vor%In der Produktion würde das etwa so aussehen:
%Vor%Tags und Links python javascript datetime php date