如何在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很高兴帮助您:)