使用JavaScript获取绝对当前日期

问题描述

我想获取UTC-7时区的当前日期。

我尝试的每种方法都以本地日期开头,并且我希望任何时区的任何用户都具有相同的日期。

解决方法

为此,我建议使用诸如Moment Timezone之类的库,这样也可以正确处理夏令时更改。

您还可以使用Date.toLocaleString()获取给定时区中的格式化时间

function getTimeInTimezone(timezone) {
    return moment.tz(timezone);
}

/* Using moment timezone */
let m = getTimeInTimezone("Etc/GMT+7");
console.log("Time in UTC-7 (moment):",m.format("YYYY-MM-DD HH:mm:ss"));

let d = new Date();
console.log("Time in UTC-7 (toLocaleString):",d.toLocaleString('en-GB',{ timeZone: "Etc/GMT+7" }));
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.25/moment-timezone-with-data-10-year-range.js"></script>