3

当我从同一个浏览器测试它时,我在客户端转换了时间值:linux和windows上的chrome。

视窗:

    var d = new Date(1995,9,1,1,15,0,0) 
    d
    Sun Oct 01 1995 01:15:00 GMT+1300 (New Zealand Daylight Time)
    d.getTime()
    **812463300000**
    var d = new Date(1995,9,1,3,15,0,0) 
    d
    Sun Oct 01 1995 03:15:00 GMT+1300 (New Zealand Daylight Time)
    d.getTime()
    **812470500000**

linux:

 var d = new Date(1995,9,1,1,15,0,0) 
   d
   Sun Oct 01 1995 01:15:00 GMT+1200 (NZST)
   d.getTime()
   **812466900000**
   var d = new Date(1995,9,1,3,15,0,0) 
   d
   Sun Oct 01 1995 03:15:00 GMT+1300 (NZDT)
   d.getTime()
   **812470500000**

问题是安装在同一 linux pc 上的服务器会得到不同的毫秒值,我在客户端转换,下一步是服务器将服务器时区的值转换为字符串值。

我知道它应该通过在服务器端转换字符串值来解决,但是如果我必须在客户端转换它,任何人都可以给我一个正确的方向来解决这个问题。

谢谢

4

2 回答 2

0

不要依赖客户端(最终用户)时钟 - 如您所说,获取服务器上的时间。始终使用 GMT / UTC 并仅在向他人显示时将其转换为本地时间。

于 2012-07-31T04:29:08.147 回答
0

日期:

var d = new Date(1995,9,1,1,15,0,0)

将使用当前系统设置转换为本地时间。为了使一切保持一致,请从服务器发送自纪元以来的UTC时间并将其转换,例如:

new Date(812463300000); // Sat Sep 30 22:15:00 UTC+1000 1995

无论服务器位于何处或系统设置如何,都将为完全相同的时刻创建一个日期对象。

于 2012-07-31T04:50:03.093 回答