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

时间:2012-08-15 11:31:24

标签: javascript

我有:

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

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

和小时的时差

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

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

2 个答案:

答案 0 :(得分:0)

SAMPLE

​<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>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

答案 1 :(得分:0)

如果您想为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.js

向Date实例添加四个小时的方法
var result = moment().add("hours", 4);