Zend_Date:将2位数年份值扩展到4位数年份

时间:2010-06-24 17:05:56

标签: zend-framework

对于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');

2 个答案:

答案 0 :(得分:1)

YEAR的短(1或2位)版本始终在当前世纪。 所以使用:

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

答案 1 :(得分:1)

显然,它有点复杂。根据{{​​3}},大于或等于70的2位数年份变为1970-1999,而小于70年的年份变为2000-2069。