当我运行以下代码
echo date('l jS \of F Y', strtotime('22/08/2018'));
输出为
1970年1月1日,星期四
任何想法为何?
答案 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。
答案 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