PHP 使用 strtotime 和 date 将 yy 转换为 yyyy,同时强制使用过去的日期

PHP converting yy to yyyy using strtotime and date while forcing dates in past

我正在解析以 mm/dd/yy 格式存储的从 1950 年代到 ~2021 年的日期。使用 date('Y-m-d',strtotime($time)); 适用于 1970 年以后的所有日期,但它很难处理 1970 年之前的日期。 02/26/63 之类的日期变成了 2063-02-26 而不是 1963-02-26

有没有办法强制截止年份,之后所有日期都将被视为 2000 年代而不是 1900 年代?或者我应该放弃 strtotime() 并自己解析字符串?

使用以下 php 版本

PHP 7.1.8 (cli) (built: Dec 18 2017 22:20:57) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

因为你真的没有办法强迫 PHP 做一些不同的事情,你最好至少解析出年份并将 19 添加到它。然后您可以使用 DateTime 函数进一步操作它。

$thedate = '02/26/63';
$year = substr($thedate,-2);
$year = ($year < 70 ? '19' : '20') . $year;
echo $year;