momentjs文档说:'默认情况下,片刻会在当地时间内解析并显示。 (https://momentjs.com/docs/#/parsing/utc/)。
如果我直接通过javascript显示moment()的输出,那确实就是这样:
<div id="divLocal">
</div>
document.getElementById("divLocal").innerHTML = moment();
输出:Fri Sep 01 2017 10:56:45 GMT + 0200
如果我使用Vuejs做同样的事情,它会显示UTC时间:
<div id='app'>
<span>{{datenow}}</span>
</div>
new Vue({
el: '#app',
data: {
datenow: ''
},
methods: {
time() {
var self = this;
this.datenow = moment();
},
},
mounted: function() {
this.time();
}
});
输出:2017-09-01T09:02:38.169Z
示例:https://jsfiddle.net/nv00k80c/1/
有人知道为什么会这样吗?如果我在Vue中使用moment()。format(),输出也是正确的。但我想知道在哪里以及为什么存在差异?
答案 0 :(得分:2)
当浏览器调用.toJSON()
toString()
正如@Vincenzo在对您的OP的评论中所说,在将其传递给模板之前,您应该始终格式化为字符串。