转换不带时区的JSON日期
我有一个返回例如DateTime对象的Web服务:DepartureDate。我使用ajax来获取此代码,并在我看来使用此功能将JSON日期字符串转换为javascript日期对象:
function convertToDate(jsonDate) { return eval("new " + jsonDate.substring(1, jsonDate.length - 1));
}
问题是要new
Date()考虑到客户端计算机上的本地时间,因此不同国家/地区的客户端会获得不同的日期。我想获取从Web服务返回的确切日期。有没有简单的方法可以做到这一点?
回答:
问题是
new 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,这是timestamp描述的时刻0
。
如果要显示以UTC为单位的时间戳创建的日期,请使用date.toUTCString()
或使用getUTCFullYear()
,getUTCMonth()
等获取日期格式的各个部分并对其进行格式化。
不过请不要eval
。
new Date(parseInt(jsonDate.slice(6, -1), 10))
以上是 转换不带时区的JSON日期 的全部内容, 来源链接: utcz.com/qa/414973.html