MySql TimeStamp和JavaScript时间

Dev*_*ode 5 javascript time highcharts

我在GMT时间的MySQL数据库中有时间戳[2013-07-19 10:12:56].我知道它应该在数据库中作为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);
Run Code Online (Sandbox Code Playgroud)

由于JavaScript花费时间以毫秒为单位因此乘以1000

输出:转换为UNIX时间:1374253976

输出:转换为JS:时间:1374253976000

我的问题是为什么它在17.12中出现在HighCharts中

当我将1374253976000放入http://www.epochconverter.com时,我得到:
GMT:星期五,2013年7月19日17:12:56 GMT这是不正确的.时间应该出现在数据库中显示为10:12:56.

有什么想法为什么会出现7h?

Jug*_*kar 10

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
Run Code Online (Sandbox Code Playgroud)

请注意,它不是 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);
Run Code Online (Sandbox Code Playgroud)

您观察到的7h差异可能是因为您的服务器位于时区-7?