欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求解:echo strtotime('2013-01-01 11:11:11')不同机器结果不同

程序员文章站 2022-05-11 16:10:06
...
相同的两行代码,
";echo strtotime($ts);?>


在linux服务器上运行,结果是这个:
2013-01-01 11:11:111357009871000

但是在我本机上运行,时间戳却是另外一个,这是怎么回事呢?
服务器上的时区设定为"Asia/Chongqing",在linux下用date输出的时间也是正确的,奇怪了


回复讨论(解决方案)

你应该分别贴出两个机器上的运行结果

重新发一下我的问题
相同的代码

";echo (strtotime($st) * 1000);echo "
";echo $ts=(strtotime($st) * 1000) - (strtotime('01-01-1970 00:00:00') * 1000);?>


在linux 服务器上运行结果:
2013-01-01 11:11:1113570098710001357035071000


在我自己本机上运行结果却不一样:
2013-01-01 11:11:1113570098710001357038671000


求解啊。。。

重新发一下我的问题
相同的代码

";echo (strtotime($st) * 1000);echo "
";echo $ts=(strtotime($st) * 1000) - (strtotime('01-01-1970 00:00:00') * 1000);?>


在linux 服务器上运行结果:
2013-01-01 11:11:1113570098710001357035071000


在我自己本机上运行结果却不一样:(winxp+wamp2.1)
2013-01-01 11:11:1113570098710001357038671000

求解。。

两服务器的时区不同?
另外,为啥要乘以1000?这个date,在PHP下是秒数,js是毫秒数。

两服务器的时区不同?
另外,为啥要乘以1000?这个date,在PHP下是秒数,js是毫秒数。

时区都一样的,*1000是为了转成js的时间戳

echo date("Y-m-d H:i:s",1357009871);
echo date("Y-m-d H:i:s",1357038671);

2013-01-01 03:11:11
2013-01-01 11:11:11

差了八个小时,肯定有一个的时区设置有问题。

引用 4 楼 LuciferStar 的回复:两服务器的时区不同?
另外,为啥要乘以1000?这个date,在PHP下是秒数,js是毫秒数。

时区都一样的,*1000是为了转成js的时间戳

3600秒,不难想象

echo date("Y-m-d H:i:s",1357009871);
echo date("Y-m-d H:i:s",1357038671);

2013-01-01 03:11:11
2013-01-01 11:11:11

差了八个小时,肯定有一个的时区设置有问题。

引用 5 楼 r9000_com 的回复:引用 4 楼 LuciferStar ……
这个时区

3600秒,不难想象

是相差了3600秒,但是不知道是什么原因造成的?

echo date("Y-m-d H:i:s",1357009871);
echo date("Y-m-d H:i:s",1357038671);

2013-01-01 03:11:11
2013-01-01 11:11:11

差了八个小时,肯定有一个的时区设置有问题。

引用 5 楼 r9000_com 的回复:引用 4 楼 LuciferStar ……

要比较的应该是这两个,因为是这在两台机器上不同的结果:

1357038671000

1357035071000

已找到答案,原因是在php.ini中把时区设为Asia/Chongqing与Asia/Shanghai,这样时间会相差一小时,我把php.ini中的时区改为Asia/Shanghai,问题解决,感谢各位回答