新的JavaScript日期对象,从一天的几秒钟开始

时间:2013-05-13 19:54:39

标签: javascript date time

似乎很简单,但我无法弄清楚。 叹息

我有 74141 一天中的秒数,如何从这个数字创建一个Date对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我将使用getHours / Seconds / Minutes设置另一个具有正确日期的日期。

3 个答案:

答案 0 :(得分:4)

您可以使用Date.prototype.setSeconds来实现此目的。 你真的不需要担心转换,因为这是自动的:

var date = new Date(1970, 0, 1); 
date.setSeconds(secs);

上述技巧依赖于Date指向午夜的事实,所以时机 你回来是准确的。出于精确原因,我正在使用EPOCH,尽管任何“确切”的午夜都可以。

答案 1 :(得分:3)

  1. 获取日期

     var now = new Date();
    
  2. 将时间字段清零:

     now.setHours(0).setMinutes(0).setSeconds(0).setMilliseconds(0);
    
  3. 根据您的时间编号创建新时间:

     var theTime = new Date(now.getTime() + timeInSeconds * 1000);
    
  4. 您当然可以使用表示任何其他日期的Date实例,但似乎使用当前日期将是最不奇怪的事情(除了一些其他条件)。

    编辑 - 实际上在将时间字段清零后,您可以将.setSeconds()与您的值一起使用,并避免创建新对象。这可能不是一个大问题。

答案 2 :(得分:2)

除了alex23的回答,它足以将0作为日期构造参数。

var date = new Date(1970, 0, 1);
// same as
var date = new Date(0);