我试图通过提取数字部分来解决它,然后使用日期函数解析它.但它告诉我一些旧日期,我猜这是不正确的.
$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.
Tim Biegelei.. 5
这个SO问题很好地涵盖了一种方法,即使用该DateTime()
函数将时间从纪元转换为日期,然后使用format()
.但是你的数据有两点需要注意.首先,你似乎有一个自纪元以来的毫秒,需要转换为秒.其次,你还有一个时区的转换,以小时为单位,标记到最后.我将你的$datef
字符串分成两部分,epoch和timezone,然后到达epoch以来的秒数.
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
在这里演示:
这个SO问题很好地涵盖了一种方法,即使用该DateTime()
函数将时间从纪元转换为日期,然后使用format()
.但是你的数据有两点需要注意.首先,你似乎有一个自纪元以来的毫秒,需要转换为秒.其次,你还有一个时区的转换,以小时为单位,标记到最后.我将你的$datef
字符串分成两部分,epoch和timezone,然后到达epoch以来的秒数.
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
在这里演示: