转换没有时区的JSON日期

kne*_*epe 5 c# jquery json asp.net-mvc-2

我有一个webservice,返回例如DateTime对象:DepartureDate.我使用ajax来获取它,在我的视图中,我使用此函数将JSON日期字符串转换为javascript日期对象:

function convertToDate(jsonDate) {
    return eval("new " + jsonDate.substring(1, jsonDate.length - 1));
}
Run Code Online (Sandbox Code Playgroud)

问题是new Date()需要考虑客户端计算机上的本地时间,因此不同国家/地区的客户会得到不同的日期.我想获得从webservice返回的确切日期.有没有简单的方法来实现这一目标?

bob*_*nce 6

问题是new Date()考虑到客户端计算机上的本地时间

不.使用timestamp构造函数创建新Date需要UTC时间戳.

例如在UTC + 1的我的机器上:

new Date(0)   // Thu Jan 01 1970 01:00:00 GMT+0100 (CET)
Run Code Online (Sandbox Code Playgroud)

好的,默认toString 显示此日期为01:00:00,看起来不对,但这实际上是正确的时间.UTC + 1中的01:00:00是UTC中的00:00:00,这是时间戳描述的时刻0.

如果你想显示你从UTC时间戳创建日期,使用date.toUTCString()或获取和使用日期格式的consistuent部分getUTCFullYear(),getUTCMonth()等等.

不过请不要eval.

new Date(parseInt(jsonDate.slice(6, -1), 10))
Run Code Online (Sandbox Code Playgroud)