转换没有时区的JSON日期

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

function convertToDate(jsonDate) { return eval("new " + jsonDate.substring(1, jsonDate.length - 1)); } 

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

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

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

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

 new Date(0) // Thu Jan 01 1970 01:00:00 GMT+0100 (CET) 

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

如果要显示从UTC时间戳创建的日期,请使用date.toUTCString()或使用getUTCFullYear()getUTCMonth()等获取和格式化日期的组成部分。

但是,请不要评价。

 new Date(parseInt(jsonDate.slice(6, -1), 10))