如何在JavaScript中使用秒添加秒?

如何在JavaScript中使用秒添加秒?,javascript,date,Javascript,Date,我的当前时间以秒为单位,持续时间以秒为单位。 我想加上这两秒来计算歌曲的结束时间(例如)。 但结果中有一个奇怪的格式 这是我的密码: //这是我的歌曲的持续时间 风险值持续时间=新日期(“2019年9月21日00:03:32”); var durationSeconds=duration.getSeconds(); //当前秒 变量日期=新日期(); var seconds=date.getSeconds(); var differenceSecondsConverted=date.setSe

我的当前时间以秒为单位,持续时间以秒为单位。 我想加上这两秒来计算歌曲的结束时间(例如)。 但结果中有一个奇怪的格式

这是我的密码:

//这是我的歌曲的持续时间
风险值持续时间=新日期(“2019年9月21日00:03:32”);
var durationSeconds=duration.getSeconds();
//当前秒
变量日期=新日期();
var seconds=date.getSeconds();
var differenceSecondsConverted=date.setSeconds(秒+持续秒);

console.log(differenceSecondsConverteds)实际上,代码按其应该的方式工作,可能您只是错过了一些概念

newdate()
是一个构造函数,它返回
Date
对象的实例

此对象具有多个属性。当您实例化它时,它会返回类似于
Sun Sep 22 2019 01:21:14 GMT+0200(CEST)
的内容,这是当前时间的字符串表示形式

然而,这个字符串表示并不是JS实际“思考”时间的方式

在内部,JS的“时间”是从1970年1月1日00:00:00起经过的毫秒数

它看起来像这样:
1569108461979

如果运行
Date.now(),您可能会看到它

此外,如果您使用
new Date()
进行任何计算(不是直接计算,而是使用
.setDate
等方法),则它将从1970年1月1日00:00:00开始以毫秒为单位进行内部计算

因此,代码中的主要问题是
duration
变量实际上不是“duration”

它只包含一个表示2019年9月21日00:03:32的对象

这只是一个瞬间(2019年9月20日午夜后3分32秒)

要计算歌曲现在开始时的结束时间,您可以执行以下操作:


let now = Date.now();
// Song duration in milliseconds
let songDuration = 201000;

let songEndTime = now + songDuration;

console.log( new Date(songEndTime) );


您可以通过在当前日期上添加3分32秒来获取时间对象,例如3:32

//时间是分和秒,单位为mm:ss
函数nowPlus(时间){
设[m,s]=time.split(':').map(Number);
让我们现在=新日期();
now.setMinutes(now.getMinutes()+m,now.getSeconds()+s);
现在就回来;
}

log('3:32时为:'+nowPlus('3:32')).toLocaleString(未定义,{hour12:false,hour:'numeric',minute:'2位',second:'2位'})
.setSeconds()
更新日期,然后返回自epoc以来的毫秒数。不要写返回值,而是在函数调用后写
日期
本身。谢谢。我删除了“setSeconds()”,但现在,秒数将增加到90:/首先,查看。由于日期是epoc之后的毫秒数,因此可以将适当的毫秒数添加到此值以查找结束时间。然后使用新值构造下一个日期实例
newdate(ms)
@SachaCOHEN很高兴帮助您:)