首页 > 解决方案 > 将新加坡时间转换为 UTC 时间的时刻代码

问题描述

我编写了以下代码将新加坡时间转换为 UTC 时间。

 function convert(time) {

          let eventStartTime = moment(time, 'HH:mm', 'Singapore').utc().format('HH:mm');

   return eventStartTime;
  }

当我运行以下行时

  convert('19:00');

它给我的输出是 23:00,这是不正确的。我究竟做错了什么?

标签: javascriptmomentjs

解决方案


function convert(time) {
  let eventStartTime = moment(time + ' +0800', 'HH:mm Z',).utc().format('HH:mm');
  return eventStartTime;
}

alert(convert('19:00'))

似乎对我有用

我不认为它在解释第三个参数是如何得到它的,所以它只是把它算作我的当地时间,并将我当地时区的晚上 7 点转换为 UTC

我刚刚使用@andré 的 jsfiddle 遵循了这个示例:

moment("2010-10-20 4:30 +0000", "YYYY-MM-DD HH:mm Z"); // parsed as 4:30 UTC

来自https://momentjs.com/docs/#/parsing/parse-zone/

它在文档中说,如果你想使用类似的东西,Asia/Singapore你应该使用这个:https ://momentjs.com/timezone/


推荐阅读