Zend_Date: Expandieren eines 2-stelligen Jahreswert bis 4-stellige Jahr
-
29-09-2019 - |
Frage
Haben Sie ein Geburtsdatum im Format ‚MM / TT / JJ‘ in den 1900 geborenen Menschen. Ich verwende Zend_Date zu analysieren und den String-Wert konvertieren
$date = new Zend_Date();
$logger->info(sprintf('Convert DOB %s -> %s',$dateOfBirth,$date->toString('yyyy-M-dd')));
ich
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
Ich erwartete
2010-06-24T16:55:50+00:00 INFO (6): Convert 9/13/57 -> 1957-9-13
Was bin ich? Ich glaube nicht, das das reale Jahr yyyy / ISO Jahr ‚YYYY‘ Umgang in Zend_Date verwendet ist.
Mein aktueller schrecklicher Hack
$formattedDate = $date->toString('dd/M').'/19'.$date->toString('YY');
Lösung
kurz (1 oder 2 Stellen) Version des Jahres ist immer in der aktuellen Jahrhundert. so verwenden:
$dob = '9/13/57';
$date = new Zend_Date($dob, 'M/d/yy');
echo $date->subYear(100)->toString('YYYY-MM-d');
Andere Tipps
Anscheinend ist es ein bisschen komplizierter. Nach dieser Seite , 2-stellige Jahre größer als oder gleich bis 70 1970-1999, während die weniger als 70 geworden 2000-2069 werden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow