0

我有:

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

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

和小时的时差

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

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

4

2 回答 2

-1

样品

​&lt;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>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
于 2012-08-15T12:04:32.260 回答
-1

如果您想为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);
于 2012-08-15T12:09:33.920 回答