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;
我正在解析以 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;