我试图通过提取数字部分然后使用日期函数解析它来解决它。但它向我显示了一些我认为不正确的旧日期。
$datef = "1490914800000+0100";
$adada = date('Y-m-d H:i:s', $datef);
// Gives date 1987-10-13 18:31:28 which is an old date. Please suggest.
最佳答案
this SO question 详细介绍了一种方法, 是使用DateTime()
函数将自纪元以来的秒数转换为日期,然后使用format()
显示此日期。但是您的数据有两个警告。首先,自纪元以来您似乎有毫秒数,需要将其转换为秒数。其次,您还有一个时区转换,以小时为单位,标记到最后。我将你的 $datef
字符串分成两部分,纪元和时区,然后得出自纪元以来的秒数。
list($epoch, $timezone) = explode('+', $datef);
$epoch = ($epoch / 1000) + (substr($timezone, 0, 2)*60*60) +
(substr($timezone, 2, 2)*60);
$dt = new DateTime("@$epoch");
echo $dt->format('Y-m-d H:i:s');
输出:
2017-03-31 00:00:00
此处演示:
PHP Sandbox
关于php - 如何在 php 中将/Date(1490914800000+0100)/格式的日期转换为 mysql 日期时间格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41866737/