我想了解它的那一刻對象的瞬間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/