我正在接收以下格式的时间戳'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小时值,但我如何使用该属性?
另一个目标是能够传入当前时间并测试它是否在startDate
和endDate
变量之间。我猜如果我可以将两者转换为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');
};