Javascript MomentJS:如何将特定时区和特定格式的时间转换为毫秒

Javascript MomentJS:如何将特定时区和特定格式的时间转换为毫秒,javascript,node.js,momentjs,Javascript,Node.js,Momentjs,我有一个特定时区格式为“hhmm”的时间“2000”,比如“亚洲/加尔各答”。 尝试了其他答案中提到的几种方法,但都没有给出正确的答案 预计时间:当地时区的准确时间(亚洲/加尔各答晚上8点) 这是在NodeJs的服务器端而不是浏览器中运行的 尝试了以下方法: let localTime1 = moment('2000').tz('Asia/Kolkata'); let localTime2 = moment('2000','hhmm').tz('Asia/Kolkata'); let local

我有一个特定时区格式为“hhmm”的时间“2000”,比如“亚洲/加尔各答”。 尝试了其他答案中提到的几种方法,但都没有给出正确的答案

预计时间:当地时区的准确时间(亚洲/加尔各答晚上8点)

这是在NodeJs的服务器端而不是浏览器中运行的

尝试了以下方法:

let localTime1 = moment('2000').tz('Asia/Kolkata');
let localTime2 = moment('2000','hhmm').tz('Asia/Kolkata');
let localTime3 = moment('2000', 'hhmm', 'Asia/Kolkata');
两者都给出了一个值1556827200000,在本地时区是下午1:30,在UTC是晚上8点

我需要的是当地时区晚上8点。

我还收到如下警告:

Deprecation warning: value provided is not in a recognized RFC2822 or ISO 
format. moment construction falls back to js Date(), which is not reliable             
across all browsers and versions. Non RFC2822/ISO date formats are 
discouraged and will be removed in an upcoming major release. Please refer to 
http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments: 
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 
2000, _f: undefined, _strict: undefined, _locale: [object Object]
Error
at Function.createFromInputFallback (/user_code/node_modules/moment-timezone/node_modules/moment/moment.js:320:98)
at configFromString (/user_code/node_modules/moment-timezone/node_modules/moment/moment.js:2385:15)
at configFromInput (/user_code/node_modules/moment-timezone/node_modules/moment/moment.js:2611:13)
at prepareConfig 

任何方向正确的帮助都会有帮助。谢谢

试试这个,希望有用:

moment('2000','hh:mm').tz('Asia/Kolkata').format('hh:mm');
或者,请尝试以下链接: 复制下面的代码并粘贴到javascript区域,然后查看输出的第3行

$('#divThai').text(moment('2000','hh:mm').tz('Asia/Kolkata').format('hh:mm'));

  • 要将
    '2000'
    解析为
    8:00pm
    使用:
    'HHmm'
    (如中所述,解析标记区分大小写。
    'hh'
    用于12小时时间格式)

  • 要将日期/时间解析为特定时区,请使用

  • 这将为您提供“亚洲/加尔各答时区的8:00pm”,而不是“UTC转换为亚洲/加尔各答时区的8:00pm”

    总而言之:

    const moment = require('moment-timezone');
    
    let localTime1 = moment.tz('2000', 'HHmm', 'Asia/Kolkata')
    
    console.log(localTime1.toString());
    // 'Thu May 02 2019 20:00:00 GMT+0530'
    

    当然,您可以使用“时刻”的格式化功能以您需要的任何格式输出日期/时间:)

    效果很好!向上投票回答并接受此回答,伙计!。嘿,刚刚试过了:它没有按预期给予。这是节点服务器,它以UTC格式返回相同的数据bro您可以在这里尝试,在JSFIDLE上,然后它工作正常您尝试过我的答案了吗bro?在IST中应该为8 pm,但在节点服务器中运行时,在UTC中为8 pm