为1900年代出生的人们提供“ MM/DD/YY”格式的出生日期。我正在使用zend_date解析并转换字符串值

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

我明白了

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

我期望

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

我想念什么?我认为这与Zend_date中的真实年“ Yyyy” / ISO年Yyyy'的处理无关。

我目前的可怕骇客

$formattedDate = $date->toString('dd/M').'/19'.$date->toString('YY');
有帮助吗?

解决方案

简短(1或2位数字)的年度始终在当前世纪。因此,请使用:

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

其他提示

显然,它更复杂。根据 这个网站, ,大于或等于70的2位年份成为1970 - 1999年,而少于70的年份变为2000-2069。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top