我有日期字符串"星期二,2018年10月2日"我需要转换另一个日期格式2018-10-02。但它显示2017年。为什么呢?
<?php
$checkin = "Tue, 2 October, 2018";
echo date("Y-m-d", strtotime($checkin));
//it show 2017-10-03 but i need 2018-10-02
?>
答案 0 :(得分:2)
您的格式是自定义的,strtotime
无法解析。你必须使它可以解析。您可以通过以下方式进行操作(DEMO):
$checkin = "Tue, 2 October, 2018";
$checkinDate = explode(',',$checkin);
$strDate = $checkinDate[1].$checkinDate[2];
echo date("Y-m-d", strtotime($strDate));
此代码中断了,
处的字符串,然后加入了忽略当天的最后两部分。
或者您可以使用date_create_from_format()
来解析此格式,例如(DEMO):
$checkin = "Tue, 2 October, 2018";
$checkin = date_create_from_format('D, j F, Y', $checkin);
echo date_format($checkin, "Y-m-d");
答案 1 :(得分:1)
您的输入格式错误。删除第二个逗号。它必须阅读
Tue, 2 October 2018
答案 2 :(得分:1)
删除,十月后逗号,删除星期二,