moment.js时区解析和比较



我正在接收以下格式的时间戳'2016-08-17T14:00:00-04:00',我可以立即用moment('2016-08-17T14:00:00-04:00', 'YYYY-MM-DDTHH:mm:ssZ')解析。

但问题是我想打印出.format('LLLL')并让它读取Wednesday, August 17, 2016 10:00 AM,即从14:00:00 (NY从UTC)中减去-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);

我找到的解决方案如下。将momentObj._tzm的值添加到解析后的日期。

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

最新更新