看起来很简单,但我无法弄清楚。叹
我一天中有74141秒,如何从这个数字创建一个 Date 对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我只是要使用 getHours/Seconds/Minutes 来设置另一个具有正确日期的日期。
看起来很简单,但我无法弄清楚。叹
我一天中有74141秒,如何从这个数字创建一个 Date 对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我只是要使用 getHours/Seconds/Minutes 来设置另一个具有正确日期的日期。
为此,您可以使用Date.prototype.setSeconds。你真的不需要担心转换,因为这是自动的:
var date = new Date(1970, 0, 1);
date.setSeconds(secs);
Date
上述技巧依赖于精确指向午夜的事实,因此您返回的时间是精确的。出于精确的原因,我使用的是 EPOCH,尽管任何“确切的”午夜都可以。
获取日期
var now = new Date();
将时间字段清零:
now.setHours(0).setMinutes(0).setSeconds(0).setMilliseconds(0);
从您的时间编号创建一个新时间:
var theTime = new Date(now.getTime() + timeInSeconds * 1000);
您当然可以使用代表任何其他日期的 Date 实例,但使用当前日期似乎是最不奇怪的事情(除非有其他条件)。
编辑- 实际上在将时间字段清零后,您可以只使用.setSeconds()
您的值并避免创建新对象。无论如何,这可能不是一个大问题。
除了 alex23 的答案之外,将 0 作为日期构造参数就足够了。
var date = new Date(1970, 0, 1);
// same as
var date = new Date(0);