您不能从 Javascript 更改系统时间,如果它是从浏览器运行的,则不能。您需要一个特殊的环境,一个能够连接 javascript 和操作系统的 API 的环境。这不是一件简单的事情,而且可能超出了您正在处理的应用程序的范围。
我建议您创建一个函数/对象,以获取带有偏移量的当前日期。像这样:
Foo = function () {};
Foo.prototype.offset = 8;
Foo.prototype.getDate = function () {
var date = new Date();
date.setHours(date.getHours() + this.offset);
return date;
}
现在您可以实例化 a foo
,设置偏移量(默认为 8)并使用它。当您需要偏移时间时,您可以这样做:
var foo = new Foo();
var bar = foo.getDate();
bar
不会打勾,但是当您需要带有偏移量的当前日期时,您可以再次使用Foo
's getDate
。
编辑:为了从固定日期开始,您可以使用这样的构造函数:
Foo = function (baseDate) {
this._date = baseDate;
this._fetched = new Date();
}
Foo.prototype.getDate = function () {
var now = new Date();
var offset = now.getTime() - this._fetched.getTime();
this._date.setTime(this._date.getTime() + offset);
this._fetched = now;
return this._date;
}
请注意,这now.getDay()
将返回星期几,而不是月份中的某一天。因此在now.getDate()
上面。(编辑为使用基准日期而不是固定的硬编码日期)。