我有一些格式为字符串的日期格式为18-04-17
。
我想将它们转换为日期。
起初我使用strtotime()将其更改为日期:
$timestamp = strtotime($row['reqEndDate']);
$newdate = date("d-m-Y", $timestamp);
echo $newdate;
输出:17-04-2018
。正如你所看到的那样,这一年错误的一天。
接下来我尝试使用datetime,如下所示:
$newdate = datetime::createFromFormat("d-m-Y", $row['reqEndDate']);
echo $newdate->format('d-m-Y');
此输出:18-04-0017
。此方法正确显示日期,但不是2017年,它会打印0017。
这种行为有什么理由吗?也许在我的php设置中寻找一些设置?
答案 0 :(得分:2)
大写Y
将产生4位数年份。小写y
生成两位数的年份。使用DateTime的代码应为:
$date = DateTime::createFromFormat('d-m-y', $row['reqEndDate']);
echo $date->format('d-m-Y');
You can read about supported formats in PHP's manual page about date