PHP日期格式

时间:2014-01-24 11:19:20

标签: php

这应该很简单,但我遇到了麻烦......所以转向StackOverflow ......

我在英国,我正在以dd / mm / yy格式从jQuery DatePicker获取日期。 我想将此日期存储为序列号(yyyymmdd),因此运行一个Date_To_Serial函数:

return date("Ymd", strtotime($strDate_In));

其中$ strDate_In是dd / mm / yy格式的日期字符串。

所以,在2013年12月1日,我希望20131201被退回。

但是,当传入01/12/2013时,它返回20130112 - PHP显然假设日期格式为mm / dd / yyyy。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:5)

如果您知道格式,请尝试在DateTime类上使用静态createFromFormat方法:

$date = DateTime::createFromFormat('d/m/Y', '01/12/2013');
return $date->format('Ymd');

答案 1 :(得分:1)

如果分隔符为/,则strtotime采用美国格式。要让它识别英国格式,分隔符必须为-.

echo date('Ymd', strtotime('01/12/2014')); // 20140112
echo date('Ymd', strtotime('01-12-2014')); // 20141201

因此,为了在您的示例中使用,您可以这样做:

return date("Ymd", strtotime(str_replace('/', '-', $strDate_In)));

答案 2 :(得分:0)

使用DateTime对象的 createFromFormat method 。它允许您指定输入的格式。

然后,使用 format 方法以所需格式导出日期。

答案 3 :(得分:0)

查看DateTime::createFromFormat以正确处理非标准日期格式。

return DateTime::createFromFormat("d/m/Y", $strDate_In)->format("Ymd");
相关问题