2012-07-08 103 views
1

我有最难的时间试图将客户端时间转换为服务器时间。原因是我每小时执行一次cron作业。我设法在java脚本中获得时区偏移量,但我对如何应用时区偏移量一无所知。例如,我的时区偏移量是7。那又如何?我应该如何应用此抵消?JavaScript客户端端时间到PHP服务器

,以获得偏移我用

var offset = new Date().getTimezoneOffset(); 

服务器端是由PHP处理。

+0

http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with -this-javascript/6016329 – dm03514 2012-07-08 18:12:14

+0

为什么不在协议双方使用[协调世界时](http://en.wikipedia.org/wiki/UTC)? – Andreas 2012-07-08 18:14:38

+1

我建议使用UNIX时间戳。 – Jashwant 2012-07-08 18:21:48

回答

1

正如其他人在评论中所说的,最好的方法是使用UNIX时间戳。在JavaScript中得到这个,使用下面的代码:

var date = Math.round(new Date().getTime()/1000); 

getTime返回以毫秒为单位的值,但我们希望以秒为单位的值,所以我们通过1000

划分它,那么你可以使用AJAX将该值发送到服务器或将该值放在隐藏的表单字段中,并在用户提交表单时将其发送到服务器。

在PHP中,你可以得到这样的日期:

$date = new DateTime(); 
// 1341773609 is the UNIX timestamp, which I got from running the above 
// JavaScript and alerting the date 
$date->setTimestamp(1341773609); 
echo $date->format('Y-m-d H:i:s');