Zend_Date: l'espansione di un valore di anno a 2 cifre a 4 cifre anno
-
29-09-2019 - |
Domanda
hanno una data di nascita in formato 'MM / gg / aa' per i nati nel 1900. Sto utilizzando Zend_Date a analizzare e convertire il valore della stringa
$date = new Zend_Date();
$logger->info(sprintf('Convert DOB %s -> %s',$dateOfBirth,$date->toString('yyyy-M-dd')));
ho
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
mi aspettavo
2010-06-24T16:55:50+00:00 INFO (6): Convert 9/13/57 -> 1957-9-13
Che cosa mi manca? Non credo che questo è legato al reale dell'anno 'aaaa' / ISO anno 'YYYY' manipolazione in Zend_Date.
Il mio attuale orribile mod
$formattedDate = $date->toString('dd/M').'/19'.$date->toString('YY');
Soluzione
breve (1 o 2 cifre) versione di YEAR è sempre in questo secolo. così l'uso:
$dob = '9/13/57';
$date = new Zend_Date($dob, 'M/d/yy');
echo $date->subYear(100)->toString('YYYY-MM-d');
Altri suggerimenti
A quanto pare, è un po 'più complicato. Secondo questo sito , 2 cifre anni maggiore o uguale a 70 diventerà 1970-1999 mentre quelli meno di 70 diventato 2000-2069.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow