圆形(纪元)时间到最高分钟
Round (epoch) time to highest minute
我正在尝试获取恰好 1 小时前的纪元时间,四舍五入到最高分钟。
例如: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 (Milliseconds) time
这一切都有效,但我如何将日期四舍五入到分钟?
而且,如果可能的话,我想将毫秒转换为秒(我可以只删除最后 3 个字符)
您设法更改小时的方式,同样,您可以更改分钟和秒。根据您的要求,以下是可能的解决方案:
let dat = new Date();
dat.setHours(dat.getHours() - 1);
if (dat.getSeconds() > 0) {
dat.setMinutes(dat.getMinutes() + 1);
dat.setSeconds(0);
}
const epochstart = Date.parse(dat);
console.log(dat.toString());
console.log(epochstart);
至于将毫秒转换为秒,请将 epochstart
除以 1000。
一种方法是将时间值四舍五入到最接近的完整分钟,这也会同时将秒和毫秒归零:
/* Set date to next full minute or current time
* if at exctly 0 minutes and 0 milliseconds
* @param {Date} date - start date
* @returns {Date} new Date set to next full minute
*/
function getNextFullMinute(date) {
return new Date(date - (date % 6e4) + 6e4);
}
// Format options
let dateOpts = {
hour: 'numeric',
minute:'2-digit',
hour12: false
};
// Get a Date set to the start of the next minute
let date = getNextFullMinute(new Date());
console.log(`The next full minute is at ${date.toLocaleString(void 0, dateOpts)}.`);
我正在尝试获取恰好 1 小时前的纪元时间,四舍五入到最高分钟。 例如: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 (Milliseconds) time
这一切都有效,但我如何将日期四舍五入到分钟?
而且,如果可能的话,我想将毫秒转换为秒(我可以只删除最后 3 个字符)
您设法更改小时的方式,同样,您可以更改分钟和秒。根据您的要求,以下是可能的解决方案:
let dat = new Date();
dat.setHours(dat.getHours() - 1);
if (dat.getSeconds() > 0) {
dat.setMinutes(dat.getMinutes() + 1);
dat.setSeconds(0);
}
const epochstart = Date.parse(dat);
console.log(dat.toString());
console.log(epochstart);
至于将毫秒转换为秒,请将 epochstart
除以 1000。
一种方法是将时间值四舍五入到最接近的完整分钟,这也会同时将秒和毫秒归零:
/* Set date to next full minute or current time
* if at exctly 0 minutes and 0 milliseconds
* @param {Date} date - start date
* @returns {Date} new Date set to next full minute
*/
function getNextFullMinute(date) {
return new Date(date - (date % 6e4) + 6e4);
}
// Format options
let dateOpts = {
hour: 'numeric',
minute:'2-digit',
hour12: false
};
// Get a Date set to the start of the next minute
let date = getNextFullMinute(new Date());
console.log(`The next full minute is at ${date.toLocaleString(void 0, dateOpts)}.`);