Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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_Rounding_Epoch_Iso - Fatal编程技术网

Javascript 至最高分钟的整(历元)时间

Javascript 至最高分钟的整(历元)时间,javascript,date,rounding,epoch,iso,Javascript,Date,Rounding,Epoch,Iso,我试图得到一小时前的大纪元时间,四舍五入到最高分钟。 例如:19:17:01应该变成19:18:00,19:17:59应该变成19:18:00等等 我已经知道如何将日期(减去1小时)转换为历元: var dat = new Date(); dat.setHours( dat.getHours() - 1 ); var epochstart = Date.parse(dat) console.log(epochstart) //Returns e.g. 19:17:01 in epoch (Mil

我试图得到一小时前的大纪元时间,四舍五入到最高分钟。 例如:19:17:01应该变成19:18:0019:17:59应该变成19:18:00等等

我已经知道如何将日期(减去1小时)转换为历元:

var dat = new Date();
dat.setHours( dat.getHours() - 1 );
var epochstart = Date.parse(dat)
console.log(epochstart) //Returns e.g. 19:17:01 in epoch (Milliseconds) time
这一切都很有效,但我该如何把日期精确到一分钟呢


如果可能的话,我想把毫秒转换成秒(我可以去掉最后3个字符)

就像你改变小时的方式一样,你也可以改变分和秒。根据您的提问,以下是可能的解决方案:

让dat=新日期();
dat.setHours(dat.getHours()-1);
如果(dat.getSeconds()>0){
dat.setMinutes(dat.getMinutes()+1);
数据设置秒(0);
}
常量epochstart=Date.parse(dat);
log(dat.toString());
console.log(epochstart);

至于将毫秒转换为秒,请将epochstart除以1000。

一种方法是将时间值四舍五入到最接近的整分钟,这也将同时将秒和毫秒归零:

/*将日期设置为下一整分钟或当前时间
*如果在0分钟和0毫秒之间
*@param{Date}Date-开始日期
*@returns{Date}将新日期设置为下一整分钟
*/
函数getNextFullMinute(日期){
返回新日期(日期-(日期%6e4)+6e4);
}
//格式选项
让dateOpts={
小时:'数字',
分钟:'2位',
12小时:错误
};
//将日期设置为下一分钟的开始
让date=getNextFullMinute(newdate());
log(`下一整分钟在${date.tolocalString(void 0,dateOpts)}.`)