PHP mktime () para fechas anteriores a 1900
Pregunta
Así que estoy trabajando en este sistema que ordena las fechas por décadas.Estoy usando tiempos de creación y tengo todo funcionando bien hasta que llega el año 1900 o menos.Después de que todo devuelva una fecha de tipo 24 de diciembre de 1964.¿Alguien más me puede explicar por qué está sucediendo esto y una posible solución?
Y el código para esto:
//$decades is a string ex: '1950-1960'
$decade_array=explode('-',$decades);
$date_active=date("M-d-Y", mktime(0, 0, 0, 1,1 , trim($decade_array[0]) ));
$date_inactive=date("M-d-Y", mktime(0, 0, 0, 1, 1, trim($decade_array[1]) ));
echo $date_active.' '.$date_inactive;
Solución
función de procedimiento alternativa
date_format(date_create('1234-01-01'), 'M-d-Y');
Otros consejos
Pruebe con la clase DateTime
:
$date = new DateTime("1234-01-01");
echo $date->format("M-d-Y"); // outputs Jan-01-1234
La clase DateTime está disponible desde PHP 5.2.
Si tiene PHP 5.3, use DateTime::createFromFormat
:
$date = DateTime::createFromFormat('Y-m-d', "1234-01-01");
echo $date->format("M-d-Y");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow