javascript - 将新加坡时间转换为 UTC 时间的时刻代码
问题描述
我编写了以下代码将新加坡时间转换为 UTC 时间。
function convert(time) {
let eventStartTime = moment(time, 'HH:mm', 'Singapore').utc().format('HH:mm');
return eventStartTime;
}
当我运行以下行时
convert('19:00');
它给我的输出是 23:00,这是不正确的。我究竟做错了什么?
解决方案
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/
推荐阅读
- bash - 删除前缀,前缀在变量中指定
- javascript - 是否可以将 JQuery attr 绑定到 js 变量?
- django - django、nginx、gunicorn 404 在除根以外的任何其他页面上
- java - gradle 中的 String.ReplaceAlli 缺少要转义的字符
- amazon-web-services - 更改依赖表的排序和分布
- android - 在 Android 中使用 runOnUiThread 更改 TextView 文本
- bash - 主机和来宾之间的文件锁定
- google-chrome - 谷歌浏览器计算器给出了有趣的答案
- html - 如何在 2 个域之间共享数据
- java - GC突然长时间暂停的原因