拿到指定时间对象

简介: 拿到指定时间对象

在很多场景下,我们有需求查询某一段时间内的数据,例如:今天的数据、昨天的数据、这一周的数据、这一个月的数据等,这个时候我们就要初始化特定的时间对象了。


时间取整

按天、小时、分钟、毫秒取整可以直接用原始提供的方法,如下所示:

const now = new Date();
now.setHours(0, 0, 0, 0); // 按天取整
now.setMinutes(0, 0, 0); // 按小时取整
now.setSeconds(0, 0); // 按分钟取整
now.setMilliseconds(0); // 按秒取整


当天开始时间

获取今天或者某一天的开始时间可以用 Date.setHours() 方法来实现,例如获取今天的开始时间:

const today = new Date(new Date().setHours(0, 0, 0, 0));
console.log(today)


输出:2021-09-09T16:00:00.000Z


如果要是昨天前天这种和今天有关系的,我们也可以用 Date.setHours() 方法,只是第一个参数要用负数,例如:

const yesterday = new Date(new Date().setHours(-24, 0, 0, 0));
const theDayBeforeYesterday = new Date(new Date().setHours(-48, 0, 0, 0));
console.log(yesterday, theDayBeforeYesterday)


输出:2021-09-08T16:00:00.000Z 2021-09-07T16:00:00.000Z


提示

也可以用 Date.setDate() 方式来实现昨天、前天的需求。


某月开始时间

const start = new Date();
start.setDate(1);
start.setHours(0, 0, 0, 0);
console.log(start);


输出:2021-08-31T16:00:00.000Z


一周的开始时间

在JavaScript中,可以用过Date.getDay()方法来获取当前是周几,由于国外是周日为一周的第一天,所以周日-周六分别对于0-6。

const now = new Date();
const sunday = new Date(now.getTime() - now.getDay() * 24 * 60 * 60 * 1000);
sunday.setHours(0, 0, 0, 0);
console.log(sunday);


输出:2021-09-04T16:00:00.000Z


一年的开始时间

const year = new Date();
year.setMonth(0,1);
year.setHours(0,0,0,0)
console.log(year)

输出:2020-12-31T16:00:00.000Z

目录
相关文章
|
6月前
|
小程序 Android开发 开发者
时间转换:toLocaleDateString()的坑
时间转换:toLocaleDateString()的坑
27 0
|
9月前
获取当前时间日期
获取当前时间日期
有关日期格式化的问题
有关日期格式化的问题
75 0
DateTimeFormatter 和 LocalDateTime 日期转换
将字符串转换为Date类型,Date转换为字符串。
DateTimeFormatter日期格式化
DateTimeFormatter日期格式化
|
C# 数据中心
C# 日期格式化常用
常用日期帮助使用 C# DateTime日期格式化 C# DateTime与时间戳转换 不同运行环境日期统一 1、CultureInfo的InvariantCulture的作用 (1)、CultureInfo使整个.NET Framework更加人性化,因为这可以使同一个数据适应不同地区和文化,这样当然满足处于不同地区和文化的用户。
1223 0