moment.js时区解析和比较

时间:2016-08-17 17:18:18

标签: momentjs

我正在使用以下格式SELECT TB_BOM.SUBITEM, TB_BOM.[SUBITEM DESCRIPTION], PROGRAMA.FECHA, TB_BOM.ITEMTYPE, distinct_TB_ONHAND.Warehouse, Sum(PROGRAMA.CANTIDAD*TB_BOM.[BUILD REQ]) AS TOTAL, <---This is the value I get incorrect in some cases. TB_BOM.[PLANNER NAME] FROM (PROGRAMA LEFT JOIN TB_BOM ON PROGRAMA.ITEM = TB_BOM.BOM) LEFT JOIN (select distinct warehouse, [Item number] from TB_ONHAND where ((Warehouse)="301")) as distinct_TB_ONHAND ON TB_BOM.SUBITEM = distinct_TB_ONHAND.[Item number] WHERE ((PROGRAMA.FECHA)=[Buscar requerimento de material de la fecha: (mm/dd/aaaa)])) GROUP BY TB_BOM.SUBITEM, TB_BOM.[SUBITEM DESCRIPTION], PROGRAMA.FECHA, TB_BOM.ITEMTYPE, distinct_TB_ONHAND.Warehouse, TB_BOM.[PLANNER NAME]; 接收时间戳,我可以使用'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(NY从UTC)中减去-04:00。看来,当前对象中存在14:00:00属性,看起来它具有-4小时值,但我该如何使用该属性?

另一个目标是能够传入当前时间并测试它是否在下面的_tzm: -240startDate变量之间。我猜我是否可以将两者转换为NY-EST我可以做到这一点,但我似乎无法接受时区参数。

有什么想法吗?

endDate

1 个答案:

答案 0 :(得分:0)

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

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