Javascript DATE和C#date – 什么是最佳解决方案?

我使用以下代码从服务器端C#获取日期:

DateTime d1 = new DateTime(1970, 1, 1); DateTime d2 = (DateTime)c.ccdTimestamp2; long x = new TimeSpan(d2.Ticks - d1.Ticks).TotalMilliseconds; 

当我在javascript端获取代码时:

 function (timestamp) { alert("testing :" + new Date(timestamp)) } 

这给了我一个完全格式化的日期,但它没有带来我的时区的时间,因为如果它是17.15这里,它为我提供19.15 GMT +2!

起初我只是尝试传递我的c#时间戳,没有上面的任何代码,并发现了这个问题: 如何格式化Microsoft JSON日期? 但我不知道JSON是什么,我无法得到我能做的! 使用JSON更容易吗? 如果是这样,任何人都能指导我 非常感谢你


编辑:解决方案 – 我没有在服务器端使用通用时间。 我保留了服务器端代码。 我所做的就是:

 new Date(timestamp).toUTCString() 

你应该做的是:

  • 始终在服务器上使用UTC时间
  • 将UTC时间作为单位时间戳发送到浏览器,就像现在一样
  • 在浏览器中将时间戳转换为本地时间

使用的时间戳代表: 2012-04-11T15:46:29+00:00

 var d = new Date ( 1334159189000 ); // gives you back 2012-04-11T15:46:29+00:00 in a slightly different format, but the timezone info matches UTC/GMT+0 d.toUTCString(); // gives you back your local time d.toLocaleString(); 

刚刚创建了一个jsfiddle来表明它做了它应该做的事情:
http://jsfiddle.net/t8hNs/1/

使用

 var currentDate = new Date(); //get off set from your browser var offset = Date.getTimezoneOffset(); 

你可以使用JavaScriptSerializer

 string json = new JavaScriptSerializer().Serialize(DateTime.Now);