假设我以这个日期作为输入:
var _dateA = 2018-11-15T11:13:26.687Z
如果我在做什么,
var _dateB = new Date(_date)
或
var _dateB = moment(_date)
我得到的结果是==>
_dateB = Thu Nov 15 2018 12:13:26 GMT+0100 (heure normale d’Europe centrale)
我了解时区存在问题,但是如何在不超过一小时的情况下获取Date对象或Moment对象呢?
想要的结果=> Thu Nov 15 2018 11:13:26 GMT+0100
当前结果=> Thu Nov 15 2018 12:13:26 GMT+0100
答案 0 :(得分:0)
您需要使用Date.toUTCString()
使用UTC时区将日期转换为字符串
var _dateA = '2018-11-15T11:13:26.687Z';
var _dateB = new Date(_dateA);
console.log(_dateB.toUTCString());
答案 1 :(得分:0)
通过Date
,console.log()
等“输出” alert()
对象时,默认使用toString()
方法,将日期对象转换为本地时区字符串进行显示(这就是为什么您在本地时间看到日期的原因)。
不建议使用Date
构造函数来解析日期字符串(尽管我怀疑大多数浏览器都可以很好地处理ISO 8601日期,就像您所询问的日期一样)-see the dateString parameter note here。因此,如果您需要构造日期对象并输出日期字符串,则可以使用多个分隔符的正则表达式字符集,使用split()
解析ISO 8601字符串,然后使用{{ 1}}。您也可以使用moment.js做到这一点,但以下内容应更详细地说明正在发生的事情。
例如:
new Date(Date.UTC(...))