日期转换错误

时间:2018-08-04 08:22:44

标签: php date datetime

当我运行以下代码

echo date('l jS \of F Y', strtotime('22/08/2018'));

输出为

  

1970年1月1日,星期四

任何想法为何?

2 个答案:

答案 0 :(得分:0)

这与美国和欧洲日期格式之间的差异有关。

使用斜杠strtotime读取带有连字符的MM / DD / YY,读取DD-MM-YY

用破折号代替斜杠将告诉它使用正确的格式。

echo date('l jS \of F Y', strtotime('22-08-2018'));

将打印Wednesday 22nd of August 2018

  

...正斜杠(/)表示美国M / D / Y格式,   破折号(-)表示欧洲D-M-Y,句点(。)表示ISO   Y.M.D。

摘自https://secure.php.net/manual/en/function.strtotime.php

上获得最高投票的用户贡献笔记

答案 1 :(得分:0)

之所以得到该输出,是因为strtotime无法解析日期。
如果您查看该手册,则列出了可以解析的日期格式。

如果必须使用该日期格式,则可以使用date_create_from_format进行解析。

$datetime = date_create_from_format ( "d/m/Y" , $dateString);

这将返回一个DateTime对象,您可以根据需要对其进行操作。
示例:

$dateString = '22/08/2018';
$datetime = date_create_from_format ( "d/m/Y" , $dateString);

echo date_format ( $datetime , 'l jS \of F Y' );

将输出:

Wednesday 22nd of August 2018

https://3v4l.org/WLgNK