从一天中的秒数创建新的JavaScript日期对象
看起来很简单,但我搞不懂。叹息 我有74141作为一天中的秒,如何从这个数字创建一个日期对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我将使用getHours/Seconds/Minutes设置另一个具有正确日期的日期。您可以用于此目的。 您实际上不需要担心转换,因为转换是自动的:从一天中的秒数创建新的JavaScript日期对象,javascript,date,time,Javascript,Date,Time,看起来很简单,但我搞不懂。叹息 我有74141作为一天中的秒,如何从这个数字创建一个日期对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我将使用getHours/Seconds/Minutes设置另一个具有正确日期的日期。您可以用于此目的。 您实际上不需要担心转换,因为转换是自动的: var date = new Date(1970, 0, 1); date.setSeconds(secs); 上面的技巧依赖于这样一个事实:日期正好指向午夜,因此时间 你回来是准确的。出于精确的原因
var date = new Date(1970, 0, 1);
date.setSeconds(secs);
上面的技巧依赖于这样一个事实:日期
正好指向午夜,因此时间
你回来是准确的。出于精确的原因,我使用了EPOCH,尽管任何“精确的”午夜都可以
var now = new Date();
now.setHours(0).setMinutes(0).setSeconds(0).setMilliseconds(0);
var theTime = new Date(now.getTime() + timeInSeconds * 1000);
编辑-实际上,在将时间字段归零后,您可以使用
.setSeconds()
值,避免创建新对象。不管怎么说,这可能不是什么大问题。除了alex23的答案之外,给出0作为日期构造参数就足够了
var date = new Date(1970, 0, 1);
// same as
var date = new Date(0);
如果您知道有一个日期对象精确地表示某一天的午夜,那么只需设置seconds字段就可以了。如果date对象表示一天中的另一个时间,那么date内部将通过添加多余的秒数来“修复”时间。是的,这将使它工作,并且当您像在回答中那样构造date实例时,任何其他日期也将工作。