2010-11-20 18 views
9

Wie kann ich mit Daten vor dem 01.01.1970 arbeiten?Unix Zeitstempel vor 1970 (noch vor 1700), mit PHP

ich brauche ersten Tag des Monats für die Zeit vom Jahr 1700.

, wie ich das erreichen kann zu bekommen?

danke im voraus!

+0

Können Sie ein Beispiel von Eingangsdaten und erwartete Ergebnis liefern? –

+1

Ist dieses Datum im Julianischen oder im Gregorianischen Kalender? – PleaseStand

+3

Möglicherweise verwenden Sie eine alte Version von PHP. PHP4 muss sterben. Versionen von PHP nach 5.1 haben diese Einschränkung von 1970 nicht. Es wurde seit 1901 geändert. – stillstanding

Antwort

15

Sie können DateTime verwenden.

Beispiel:

<?php 
$d = new DateTime("1780-06-01"); 
echo $d->format("l"); //Thursday 

Sie sollten jedoch bedenken, dass der Gregorianische Kalender adopted auf der ganzen Welt in verschiedenen Zeitpunkten war.

+3

'DateTime' ist die Zukunft. +1. Beachten Sie, dass Sie PHP 5.3 benötigen, um einige der 'DateTime'-Werte zu genießen (Intervals, CreateFromFormat und so weiter). Im Zweifelsfall wird Ihnen in der Bedienungsanleitung die erforderliche Version –

+1

DateTime in jedem Fall nicht vor 1901 angezeigt. $ date = neue DateTime ('1869-01-01 07:00:00'); echo $ date-> Format ('U'); << Das funktioniert. $ date-> setTimestamp (-3187208524); Echo $ Datum-> Format ('Y-m-d H: i: s'); << Das funktioniert nicht! – vee

+1

@vee funktioniert hier (5.5.9). Vielleicht verwenden Sie eine 32-Bit-Version von PHP? Übergeben Sie den Zeitstempel stattdessen als Float ('-3187208524.'). – Artefacto