我想了解它的那一刻对象的瞬间JS”初始化。瞬间JS初始化和UTC()方法
例如,如果我想为日期和时间创建一个时刻: 2000年4月1日上午3:25:00,utc偏移量为UTC/GMT +8小时。
我代表这在JavaScript对象:
var obj = {
year: 2000,
month: 4, //APRIL
day: 1,
hour: 3,
minute: 25,
second: 0,
utcOffset: 8 //8 hours from UTC
}
我然后创建一个方便的功能,我可以用它来创建时刻JS了一下:
var makemoment = function(obj){
var m = moment([obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, 0]).utcOffset(obj.utcOffset);
return m;
}
当我使用这个函数来创建瞬间... 例如
var result = moment(obj);
如果我检查结果对象上我可以看到,它有一个属性_d
,我希望有一个值,如:
_d Date {Sat Apr 01 2000 03:25:00 GMT+0800 (HKT)}
但实际值是这对我来说确实因为我指定的时间是3:25:00,它已经在格林尼治标准时间+0800所以没有必要到8小时添加到时间没有意义....
_d Date {Sat Apr 01 2000 11:25:00 GMT+0800 (HKT)}
尽管这_D值不过,如果我console.log(result)
我得到正确的预产期:
2000-04-01T03:25:00+08:00
如果我请的那一刻UTC方法。例如result.utc()
如果我再次检查对象,我可以看到,现在的_d
改变了我原先的预期值:
_d Date {Sat Apr 01 2000 03:25:00 GMT+0800 (HKT)}
不过,现在如果我做result.format()
我得到正确的UTC日期和时间:
2000-03-31T19:25:00+00:00
上午我不理解的东西在这里???? Moment.js中使用的_d值如何? 我应该忽略_D值,因为它只是Moment.js内部的东西???
我创建的jsfiddle为说明我的观点......
http://jsfiddle.net/nx2ch4ot/2/