将新加坡时间转换为UTC时间的时刻代码
moment code to convert Singapore time to UTC time
我编写了以下代码将新加坡时间转换为 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/
Alex 的回答正确解释了为什么当前的方法不起作用。但是,我们也可以使用 moment-timezone
:
来解决这个问题
function convert(time) {
let eventStartTime = moment.tz(time, 'HH:mm', 'Asia/Singapore').utc().format('HH:mm');
return eventStartTime;
}
alert(convert('19:00'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.33/moment-timezone-with-data.js"></script>
虽然这需要您使用 moment.js
>= 2.60。
我编写了以下代码将新加坡时间转换为 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/
Alex 的回答正确解释了为什么当前的方法不起作用。但是,我们也可以使用 moment-timezone
:
function convert(time) {
let eventStartTime = moment.tz(time, 'HH:mm', 'Asia/Singapore').utc().format('HH:mm');
return eventStartTime;
}
alert(convert('19:00'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.33/moment-timezone-with-data.js"></script>
虽然这需要您使用 moment.js
>= 2.60。