JavaScript 如何将UTC日期时间转换成本地日期时间
时区处理是每个网络应用程序的一个重要组成部分。后台记录的时间通常是UTC格式的。然而,当它被显示给用户时,它必须被转换为用户的本地时间。这可以通过JavaScript实现。在这篇博客中,我们将看看如何使用JavaScript将UTC日期时间转换为本地日期时间。
JavaScript的日期
JavaScript包含一个 “Date “类,允许我们处理日期和时间。Date类包括各种处理日期和时间的方法,其中包括
Date() - 返回当前日期和时间的毫秒数 getTime() 返回当前时间的毫秒数
getUTCFullYear() - 返回一个日期在UTC时区的年份。
getUTCMonth() - 返回一个日期在 UTC 时区的月份。
getUTCDate() - 返回一个日期在UTC时区的月和日。
getUTCHours() - 返回一个日期在UTC时区的小时数。
getUTCMinutes() - 返回一个日期在UTC时区的分钟数。
getUTCSeconds() - 返回一个日期在UTC时区的秒数。
将UTC转换为当地时间
我们必须使用getTimezoneOffset()方法来将UTC日期时间转换为本地日期时间。这个方法返回UTC和本地时间之间以分钟为单位的时间差。这个分钟差可以用来将UTC日期时间转换为当地日期时间。
例子
例如,下面的代码将UTC日期时间转换为本地日期时间
<!DOCTYPE html>
<html>
<body>
<div id="result"></div>
<script>
var utc = new Date();
var offset = utc.getTimezoneOffset();
var local = new Date(utc.getTime() + offset * 60000);
document.getElementById("result").innerHTML = local;
</script>
</body>
</html>
我们在这里可以看到一个名为 “utc “的新日期对象,它持有当前的UTC日期和时间。然后,我们使用getTimezoneOffset()函数来计算UTC和本地时间之间的时间差,单位是分钟。最后,我们通过将这一数额与UTC时间相加,计算出本地时间,单位为毫秒。
同样地,我们可以将指定的UTC日期时间转换为本地日期时间。要完成同样的事情,只需将UTC日期和时间作为参数提供给Date()函数Object() { [本地代码] }。现在,让我们看看将UTC日期时间 “2018-11-12 12:00:00 “转换为本地日期时间的代码 –
例子
<!DOCTYPE html>
<html>
<head>
<title>Date Example</title>
</head>
<body>
<div id="result"></div>
<script>
var utc = new Date("2018-11-12 12:00:00");
var offset = utc.getTimezoneOffset();
var local = new Date(utc.getTime() + offset * 60000);
document.getElementById("result").innerHTML = "UTC : " + utc + "<br>" + "Local : " + local;
</script>
</body>
</html>
我们将UTC日期和时间作为一个字符串传递给Date()构造函数。然后我们使用与之前相同的方法将UTC日期时间转换为本地日期时间。
将本地时间转换为UTC
现在,我们如何从本地时间转换到UTC呢?为了将本地日期时间转换为UTC日期时间,我们可以再一次使用getTimezoneOffset()方法。因为这个函数返回UTC和本地时间之间的时间差,单位是分钟。这个差值可以用来将本地日期时间转换为UTC日期时间。
例子
例如,下面的代码将把本地日期时间转换为UTC日期时间
<!DOCTYPE html>
<html>
<body>
<div id="result"></div>
<script>
var local = new Date();
var offset = local.getTimezoneOffset();
var utc = new Date(local.getTime() - offset * 60000);
document.getElementById("result").innerHTML = utc;
</script>
</body>
</html>
在这里,在上面的代码中,我们首先创建了一个名为 “local “的新Date对象,它包含了当前的本地日期和时间。然后,我们使用getTimezoneOffset()方法来获取UTC和本地时间之间的时间差,单位是分钟。用这个值减去当地时间的毫秒后,我们得到了UTC时间。
我们也可以通过将本地日期和时间作为参数传递给Date()构造函数,将一个特定的本地日期时间转换为UTC日期时间。例如,下面的代码将把本地日期时间 “2018-11-12 12:00:00 “转换为UTC日期时间 –
例子
<!DOCTYPE html>
<html>
<body>
<div id="result"></div>
<script>
var local = new Date("2018-11-12 12:00:00");
var offset = local.getTimezoneOffset();
var utc = new Date(local.getTime() - offset * 60000);
document.getElementById("result").innerHTML = utc;
</script>
</body>
</html>
我们将本地日期和时间作为字符串传递给Date()构造函数。然后我们使用与之前相同的方法将本地日期时间转换为UTC日期时间。
总结
在本教程中,我们学习了如何使用JavaScript将UTC日期时间转换成本地日期时间。我们还了解到JavaScript的Date类提供了几个处理日期和时间的方法,比如getTimezoneOffset(),它可以用来将UTC日期时间转换成本地日期时间。在这篇博客中,我们还学习了如何使用同样的方法将本地日期时间转换为UTC日期时间。需要注意的是,时区处理是任何网络应用的一个重要方面,正确地转换时间以便正确地显示给用户是很重要的。