如何在PHP中将ISO8601转换为日期格式

Nee*_*eel 18 php mysql sql datetime date

如何转换(ISO8601格式): 2014-03-13T09:05:50.240Z

对此(以MySQL DATE格式): 2014-03-13

在PHP?

Tha*_*MSG 27

试试这个

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime($date));
Run Code Online (Sandbox Code Playgroud)

完整的日期函数文档可以在这里找到:http://php.net/manual/en/function.date.php

PHP函数"strtotime"不执行任何操作,然后将您的时间字符串转换为unix时间戳.

希望我能帮忙:)

Ps:以防万一strtotime将返回0尝试使用此:

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime(substr($date,0,10)));
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢你...它真棒!你使用`date('Ym-d',strtotime(substr($ date,0,10)))的最后一个注释,如果它返回0是完美的.这对我来说效果很好!它对我帮助很大!谢谢... :) (2认同)

Fai*_*sal 12

由于PHP 5.2.0可以用做OOPDateTime()也(当然如果你喜欢OOP):

$now = new DateTime("2014-03-13T09:05:50.240Z");
echo $now->format('Y-m-d');    // MySQL datetime format
Run Code Online (Sandbox Code Playgroud)


Wii*_*imm 5

没有理由使用低效的时间函数。最有效的方法是简单地提取前 10 个字符:

\n
substr($date,0,10)\n
Run Code Online (Sandbox Code Playgroud)\n

真正为 \xe2\x89\xa510000 年编码的人们可以使用:

\n
substr($date,0,strpos($date,"T"))\n
Run Code Online (Sandbox Code Playgroud)\n

  • 到10000年就会突破 (3认同)