Zend_Date: la expansión de un valor de año de 2 dígitos de 4 dígitos del año

StackOverflow https://stackoverflow.com/questions/3112220

  •  29-09-2019
  •  | 
  •  

Pregunta

tienen una fecha de nacimiento en formato 'MM / dd / aa' para las personas nacidas en los años 1900. Estoy usando Zend_Date a analizar y convertir el valor de cadena

$date = new Zend_Date();
$logger->info(sprintf('Convert DOB %s -> %s',$dateOfBirth,$date->toString('yyyy-M-dd')));

consigo

2010-06-24T16:55:50+00:00 INFO (6): DOB 9/13/57
2010-06-24T16:55:50+00:00 INFO (6): Convert DOB : 9/13/57 -> 2057-9-13

Me esperaba

2010-06-24T16:55:50+00:00 INFO (6): Convert 9/13/57 -> 1957-9-13

¿Qué me falta? No creo que esto está relacionado con el año real 'aaaa' / ISO año 'AAAA' manejo en Zend_Date.

Mi actual terrible truco

$formattedDate = $date->toString('dd/M').'/19'.$date->toString('YY');
¿Fue útil?

Solución

corto (1 o 2 dígitos) versión del año siempre es en el siglo actual. así que el uso:

    $dob = '9/13/57';
    $date = new Zend_Date($dob, 'M/d/yy');
    echo $date->subYear(100)->toString('YYYY-MM-d');

Otros consejos

Al parecer, es un poco más complicado. De acuerdo con este sitio , 2 dígitos años mayor que o igual a 70 convertido 1970-1999 mientras que los de menos de 70 convertido 2000-2069.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top