获取两个时区之间的时差(Javascript)

Get time difference between two time zones (Javascript)

本文关键字:Javascript 之间 时差 两个 获取 时区      更新时间:2023-09-26

我有:

任何日期 (GMT+00:00)UTC

var d = new Date(y, m, d, h, min, s);

和小时时差

var visitortime = new Date();
var time_offset = visitortime.getTimezoneOffset()/60;

如何在不编写长手工函数的情况下计算考虑差异的新日期?

示例

​<div id="d1"></div>
<div id="d2"></div>
<script type="text/javascript">
    var d1 = document.getElementById('d1'),
    d2 = document.getElementById('d2'),
    hours = 3,
    date1 = new Date(),
    date2 = new Date();
    date2.setTime(date1.getTime() + hours * 3600000);
    d1.innerHTML = date1;
    d2.innerHTML = date2;
</script>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

如果要向Date实例添加小时数,则可以使用 Date.setHours 方法。

var userTime = new Date();
// Add four hours to the `userTime` date instance.
userTime.setHours(userTime.getHours() + 4);

如果要使其可重用,可以向Date对象的原型添加一个新方法:

// Add the supplied number of hours to a Date instance.
Date.prototype.addHours = function (value) { 
    this.setHours(this.getHours() + value);
};

然后你可以简单地写:

var userDate = new Date();
userDate.addHours(4);

如果您计划在代码中进行大量日期操作,那么最好拉入日期/时间库(如 moment.js其中包含许多有用的实用工具方法,并且与向Date原型添加新方法不同,您的代码将保持可移植性。 下面介绍如何使用 moment 向 Date 实例添加四个小时.js

var result = moment().add("hours", 4);