获取new Date()实例但将时间设置为午夜的最简单方法是什么?
当前回答
你可以用
new Date().setUTCHours(0,0,0,0)
如果您只需要该值一次。
其他回答
sehours方法可以采用可选的minutes, seconds和ms参数,例如:
var d = new Date();
d.setHours(0,0,0,0);
这将把时间设置为当前时区的00:00:00.000,如果你想在UTC时间工作,你可以使用setUTCHours方法。
使用dayjs库,你可以使用startOf('day')方法。
const dayjs = require('dayjs');
const todayAtMidnight= dayjs().startOf('day');
// Get as a native date object
console.log(todayAtMidnight.toDate());
要开始特定的一天,你可以使用以下命令:
const date = dayjs("2023-02-12").startOf('day');
只是想澄清一下,接受答案的片段给出了过去最近的午夜:
var d = new Date();
d.setHours(0,0,0,0); // last midnight
如果你想在将来得到最近的午夜,使用下面的代码:
var d = new Date();
d.setHours(24,0,0,0); // next midnight
如果您已经在项目中有d3.js作为依赖项,或者不介意引入它,d3-time (d3.js库在v4.0.0中是模块化的)有interval。
在将日期设置为“默认”值时,它们可能很有用,例如午夜、0.00秒、每月的第一天等。
var d = new Date(); // Wed Aug 02 2017 15:01:07 GMT+0200 (CEST)
d3.timeHour(d) // Wed Aug 02 2017 00:00:00 GMT+0200 (CEST)
d3.timeMonth(d) // Tue Aug 01 2017 00:00:00 GMT+0200 (CEST)
你可以用
new Date().setUTCHours(0,0,0,0)
如果您只需要该值一次。