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