2010-11-20 7 views
9

¿cómo puedo trabajar con las fechas anteriores al 01.01.1970?marca de tiempo Unix antes de 1970 (incluso antes de 1700), utilizando PHP

que necesito para obtener el primer día del mes para las fechas desde el año 1700.

¿Cómo puedo lograr eso?

¡gracias de antemano!

+0

¿Puede dar un ejemplo de los datos de entrada y resultado esperado? –

+1

¿Es esta fecha en el calendario juliano o en el calendario gregoriano? – PleaseStand

+3

Es posible que esté utilizando una versión anterior de PHP. PHP4 debe morir. Las versiones de PHP después de 5.1 no tienen esa restricción de 1970. Se ha cambiado desde 1901. – stillstanding

Respuesta

15

Puede usar DateTime.

Ejemplo:

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

Debería, sin embargo, consideran que el calendario gregoriano fue adopted en diferentes instantes de todo el mundo.

+3

'DateTime' es el futuro. +1. Tenga en cuenta que necesita PHP 5.3 para disfrutar de algunos de los beneficios de 'DateTime' (Intervalos, CreateFromFormat y demás). En caso de duda, el manual le indicará la versión requerida –

+1

DateTime no puede ir antes de 1901 en todos los casos. $ date = new DateTime ('1869-01-01 07:00:00'); echo $ date-> format ('U'); << Esto funciona. $ date-> setTimestamp (-3187208524); echo $ date-> format ('Y-m-d H: i: s'); << Esto no funciona! – vee

+1

@vee funciona aquí (5.5.9). ¿Tal vez estás usando una compilación de PHP de 32 bits? Intente pasar la marca de tiempo como un flotador en su lugar ('-3187208524'). – Artefacto

Cuestiones relacionadas