更改日期,以便所有小时数抵消4小时

时间:2012-01-05 21:21:35

标签: javascript date offset

我想将Date对象调整为总是4小时偏移。我怎么做到这一点?

var d = new Date();
// d would be 4 hours in the past

3 个答案:

答案 0 :(得分:2)

Date.withOffset = function( offset ){
    var r = new Date();
    r.setHours(r.getHours()+offset);
    return r;
};

var d = Date.withOffset( -4 )
// d would be 4 hours in the past

你可能会想出一个更好的名字。

如果您希望破解页面上的所有JavaScript,您当然可以使用:

Date = function () {
    var old = Date;

    function broken() {
        var r = new old();
        r.setHours(r.getHours()-4);
        return r;
    }
    broken.fix = function () {
        Date = old;
    };

    return broken;
}();

然后,您可以通过调用Date.fix()

来解决此问题

答案 1 :(得分:0)

您可以使用特定日期创建日期对象。只需从当前时间中减去正确的毫秒数并将其传递给日期函数:

var d = new Date(new Date().getTime() - 1000*60*60*4);

或者您可以手动设置小时数

var d = new Date();
d.setHours((12 + (d.getHours() - 4))%12)

答案 2 :(得分:0)

这样的事情:

d.setHours(d.getHours()-4);