【发布时间】:2013-05-13 19:54:38
【问题描述】:
看起来很简单,但我想不通。 叹息
我有 74141 作为一天中的秒数,如何从这个数字创建一个 Date 对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我只是要使用 getHours/Seconds/Minutes 来设置另一个日期正确的日期。
【问题讨论】:
标签: javascript date time
看起来很简单,但我想不通。 叹息
我有 74141 作为一天中的秒数,如何从这个数字创建一个 Date 对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我只是要使用 getHours/Seconds/Minutes 来设置另一个日期正确的日期。
【问题讨论】:
标签: javascript date time
您可以为此目的使用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 实例,但使用当前日期似乎是最不奇怪的事情(除非有一些其他条件)。
edit — 实际上,在将时间字段清零后,您可以将 .setSeconds() 与您的值一起使用并避免创建新对象。无论如何,这可能不是什么大问题。
【讨论】:
除了alex23的答案,给0作为日期构造参数就足够了。
var date = new Date(1970, 0, 1);
// same as
var date = new Date(0);
【讨论】: