2016-08-17 54 views
0

我收到以下格式的時間戳'2016-08-17T14:00:00-04:00',我可以用moment('2016-08-17T14:00:00-04:00', 'YYYY-MM-DDTHH:mm:ssZ')解析這個時間戳。moment.js時區解析和比較

但問題是,我想打印出.format('LLLL')並將其讀取爲Wednesday, August 17, 2016 10:00 AM,即從14:00:00(從UTC開始的NY)減去-04:00。看起來在時間對象中有一個_tzm: -240屬性,它看起來像擁有-4小時值,但我該如何使用該屬性?

另一個目標是能夠通過當前時間並測試它是否在下面的startDateendDate變量之間。我猜如果我可以轉換爲NY-EST,我可以做到這一點,但我似乎無法得到時間來接受時區參數。

有什麼想法?

var moment = require('moment'); 

// Timestamp strings from API 
var startDate = '2016-08-17T14:00:00-04:00'; 
var endDate = '2016-08-17T15:00:00-04:00'; 

// Create a range from the start and end dates 
var range = moment().range(new Date(startDate), new Date(endDate)); 

// Get the current time 
var currentTime = new Date(); 

// Does the current time fall within the range b/w the start and end dates 
range.contains(currentTime); 

回答

0

我找到的解決方案如下。將值從momentObj._tzm添加到解析日期。

module.exports.convertDateToProperTimezone = function (dt) { 
    var _m = moment(dt, 'YYYY-MM-DDTHH:mm:ssZ'); 
    return _m.add(_m._tzm, 'minutes'); 
};