2010-11-20 8 views
9

comment puis-je travailler avec des dates avant 01.01.1970?Timestamp Unix avant 1970 (même avant 1700), en utilisant PHP

j'ai besoin de premier jour du mois pour les dates de l'année 1700.

comment puis-je y parvenir?

merci d'avance!

+0

Pouvez-vous donner un exemple de données d'entrée et résultat escompté? –

+1

Cette date est-elle dans le calendrier julien ou dans le calendrier grégorien? – PleaseStand

+3

Vous utilisez peut-être une ancienne version de PHP. PHP4 doit mourir. Les versions de PHP après 5.1 n'ont pas cette restriction de 1970. Il a été changé depuis à 1901. – stillstanding

Répondre

15

Vous pouvez utiliser DateTime.

Exemple:

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

Vous devriez cependant considérer que le calendrier grégorien a été adopted dans des instants différents dans le monde entier.

+3

'DateTime' est le futur. +1 Notez que vous avez besoin de PHP 5.3 pour profiter de la qualité 'DateTime' (Intervals, CreateFromFormat et autres). En cas de doute, le manuel vous indiquera la version requise –

+1

DateTime ne peut pas aller avant 1901 dans tous les cas. $ date = new DateTime ('1869-01-01 07:00:00'); echo $ date-> format ('U'); << Cela fonctionne. $ date-> setTimestamp (-3187208524); echo $ date-> format ('Y-m-d H: i: s'); << Cela ne fonctionne pas! – vee

+1

@vee fonctionne ici (5.5.9). Peut-être que vous utilisez une version 32 bits de PHP? Essayez de passer l'horodateur comme flotteur à la place ('-3187208524.'). – Artefacto