📅  最后修改于: 2023-12-03 15:40:09.393000             🧑  作者: Mango
在Javascript中,许多应用程序需要处理时区。在这个过程中,我们通常需要把时钟设置到另一个时区。本文将介绍如何在Javascript中实现这一目标。
要以另一个时区的本地时间设置时钟,我们需要以下过程:
要获取用户所在的时区,我们可以使用Intl
对象的DateTimeFormat()
方法。该方法接受一个语言标记和一些选项。我们只需传递该对象所在时区的URL参数。
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
这将返回用户所在的时区。
要将本地时间转换为UTC时间,我们可以使用JavaScript的Date
对象上的getTime()
方法。这将返回自1970年1月1日00:00:00 UTC以来的毫秒数。
const timestamp = (new Date()).getTime();
我们可以使用Intl
对象的DateTimeFormat()
方法来将UTC时间转换为所需时区的本地时间。
const options = { timeZone: 'America/Los_Angeles' };
const formatter = new Intl.DateTimeFormat([], options);
const dateString = formatter.format(new Date(timestamp));
这将返回American/Los_Angeles
时区的本地时间。
下面是一个完整的示例代码,可以将时钟设置为用户所在时区之外的任何时区。
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
const timestamp = (new Date()).getTime();
const options = { timeZone: 'America/Los_Angeles' };
const formatter = new Intl.DateTimeFormat([], options);
const dateString = formatter.format(new Date(timestamp));
document.getElementById("clock").textContent = dateString;
这将在<div id="clock"></div>
中显示当前时间。