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

问题描述 投票:2回答:1

我正在解析以20世纪50年代到2021年的日期,以mm / dd / yy格式存储。使用date('Y-m-d',strtotime($time));适用于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 strtotime
1个回答
4
投票

由于你真的无法强迫PHP做一些不同的事情,你最好至少解析一年并将其添加到它。然后,您可以使用DateTime函数进一步操作它。

$thedate = '02/26/63';
$year = substr($thedate,-2);
$year = ($year < 70 ? '19' : '20') . $year;
echo $year;
© www.soinside.com 2019 - 2024. All rights reserved.