Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从一天中的秒数创建新的JavaScript日期对象_Javascript_Date_Time - Fatal编程技术网

从一天中的秒数创建新的JavaScript日期对象

从一天中的秒数创建新的JavaScript日期对象,javascript,date,time,Javascript,Date,Time,看起来很简单,但我搞不懂。叹息 我有74141作为一天中的秒,如何从这个数字创建一个日期对象来表示以小时和秒为单位的时间?我不关心的实际日期,因为我将使用getHours/Seconds/Minutes设置另一个具有正确日期的日期。您可以用于此目的。 您实际上不需要担心转换,因为转换是自动的: var date = new Date(1970, 0, 1); date.setSeconds(secs); 上面的技巧依赖于这样一个事实:日期正好指向午夜,因此时间 你回来是准确的。出于精确的原因

看起来很简单,但我搞不懂。叹息

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

您可以用于此目的。 您实际上不需要担心转换,因为转换是自动的:

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实例时,任何其他日期也将工作。