【发布时间】:2016-05-05 16:25:44
【问题描述】:
我有一个从 BST 中的 fullcalendar 生成的 moment.js 对象,如下所示:
console.log(momentSelected)
//Moment {_isAMomentObject: true, _isUTC: true, _offset: 0, _locale: f, _d: Tue May 03 2016 01:00:00 GMT+0100 (BST)…}
我不想要一个 BST 时间,而是一个如下所示的 UTC 时间:
console.log(momentSelected.format('YYYY-MM-DD HH:mm Z'));
//2016-05-03 00:00 +00:00
现在我需要将其转换为 Date 对象:
$scope.date = new Date(momentSelected.format('YYYY-MM-DD HH:mm Z'));
console.log($scope.date);
//Wed May 04 2016 01:00:00 GMT+0100 (BST)
最后输出错误...我要Wed May 04 2016 00:00:00+00:00 (UTC)
【问题讨论】:
-
但它显示
_isUTC: true, _offset: 0已经是UTC。也许你需要使用Date.prototype.toUTCString() -
是的,我同意,为什么它会在 BST 中创建一个 Date 对象...
-
@Matt 的回答解释了这一点(如果您的本地时区是英国(在 GMT 和 BST 之间交替进行夏令时),那么就不可能在生成的字符串中获得 (UTC) 时间通过console.log($scope.date);,不管你如何创建那个日期)
-
另外,
console.log触发日期对象的.toString()原型,用于在本地时区打印日期 (adripofjavascript.com/blog/drips/…)
标签: angularjs fullcalendar momentjs