我在格林威治标准时间 [2013-07-19 10:12:56] 的 MySQL 数据库中有一个时间戳。 我知道它应该作为 DateTime 和 UTC 在数据库中,但不幸的是,它就是这样。
我需要提取时间戳并传递到 JavaScript [HighCharts]。
$time = strtotime('2013-07-19 10:12:56');
echo("Converting to UNIX Time: ");echo $time;
echo("Converting to JS Time: ");echo ($time*1000);
由于 JavaScript 需要以毫秒为单位的时间,因此乘法购买 1000
Output: Converting to UNIX Time: 1374253976
Output: Converting to JS :Time: 1374253976000
我的问题是为什么它在 HighCharts 中显示为 17.12
当我将 1374253976000 放入 http://www.epochconverter.com 时我得到:
GMT:2013 年 7 月 19 日星期五 17:12:56 GMT 这是不正确的。数据库中显示的时间应为 10:12:56。
知道为什么会在 7 小时后结束吗?
最佳答案
Epochtimeconverter表示 Fri, 19 Jul 2013 10:12:56 GMT
具有以下纪元时间
Epoch timestamp: 1374228776
Timestamp in milliseconds: 1374228776000
Human time (GMT): Fri, 19 Jul 2013 10:12:56 GMT
Human time (your time zone): Friday, July 19, 2013 3:42:56 PM
请注意,它不是 1374253976
正如您得到的那样。所以就是这个问题,从epochtime到highcharts等的转换是正确的。是你的时代要错了
除非另有说明,否则 PHP 会将字符串视为服务器的时区。
试一试,将时区明确指定为 GMT
,如下所示
$time = strtotime('2013-07-19 10:12:56' . ' GMT');
echo("Converting to UNIX Time: ");echo $time;
echo("Converting to JS Time: ");echo ($time*1000);
您观察到的 7 小时差异可能是因为您的服务器位于时区 -7?
关于javascript - MySql 时间戳和 JavaScript 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17782594/