gpt4 book ai didi

javascript - 如何在javascript中将当前时间设置为其他时间

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:23 25 4
gpt4 key购买 nike

我正在尝试将当前时间设置为其他时间,每当我尝试访问当前时间时,我都需要获取新时间。假设当前时间在我的本地机器上是凌晨 2 点。但我想将它更改为上午 10 点,并且当前时间应该从上午 10 点开始滴答作响,而不是每当我访问它时从凌晨 2 点开始。

例如:

var x = new Date();

如果您看到 x.getHours() 获取我的本地时间,即凌晨 2 点每次它都以凌晨 2 点为基准滴答作响。

但我需要将它更改为上午 10 点,以便我的新 Date() 给出上午 10 点并在此基础上每秒滴答作响。

我不想为此目的使用 setInterval()。我肯定有 setInterval() 的解决方案。但问题是我有多个 setIntervals,另一个停止更新 setInterval() 中的时间,我试图每秒更新 10 点。

最佳答案

您不能从 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;
}

现在您可以实例化一个 foo,设置偏移量(默认为 8)并使用它。当您需要偏移时间时,您可以这样做:

var foo = new Foo();
var bar = foo.getDate();

bar 不会打勾,但是每当您需要带有偏移量的当前日期时,您可以再次使用 FoogetDate

编辑:为了从固定日期开始,您可以像这样使用构造函数:

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() 就在那里。 (编辑为使用基准日期而不是固定的硬编码日期)。

关于javascript - 如何在javascript中将当前时间设置为其他时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18108642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com