我很难理解什么是 timeZone
选项中的 Intl.DateTimeFormat()
方法正是如此。我还找不到这方面的深入资料。如果有任何解释,将非常感激。
背景:我们需要在前端显示一个后台服务器的时间戳,并且在时间区的偏移上出现了一些问题。我们需要在前台显示一个后台服务器的时间戳,但在时区偏移上遇到了一些问题。目前,我认为根据本地客户端时间显示正确时间的解决方案如下。
Intl.DateTimeFormat('en-GB', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
timeZone: 'GMT'
}).format(timestamp)}
我不完全理解,为什么我需要通过 "格林威治时间 "的选项timeZone: "GMT "来获得前端的正确时间。
时区是用来计算本地时间的。
const timeZones = [
"GMT",
"Europe/Madrid",
"Asia/Tokyo"
];
const timestamp = new Date();
let displayDate;
for (timeZone of timeZones) {
displayDate = Intl.DateTimeFormat('en-GB', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
timeZone: timeZone
}).format(timestamp);
console.log("%s @ %s", displayDate, timeZone);
}