使用 JavaScript 检查日期是否在过去

使用 JavaScript 检查日期是否在过去

Check if a Date is in the Past using JavaScript

检查日期是否在过去:

  1. 使用Date()构造函数获取当前日期。
  2. 可选择将当前日期的时间设置为午夜。
  3. 检查日期是否小于当前日期。
索引.js
function isInThePast(date) { const today = new Date(); // 👇️ OPTIONAL! // This line sets the hour of the current date to midnight // so the comparison only returns `true` if the passed in date // is at least yesterday today.setHours(0, 0, 0, 0); return date < today; } console.log(isInThePast(new Date())); // 👉️ false console.log(isInThePast(new Date('2022-01-25'))); // 👉️ true

我们创建了一个可重用的函数,它将一个Date对象作为参数并检查日期是否在过去。

我们使用
Date()
构造函数来创建一个
Date表示当前日期的对象。

下一行使用
setHours
方法将日期的时、分、秒和毫秒设置为
0
(午夜)。

这一行是可选的,使我们能够检查传入的Date是否至少是昨天。

如果删除此行,您将检查提供的日期是否至少过去一毫秒而不是过去至少一天。

这是相同的示例,但没有将小时、分钟、秒和毫秒设置为0

索引.js
function isInThePast(date) { const today = new Date(); return date < today; } const oneHourAgo = new Date(); oneHourAgo.setHours(oneHourAgo.getHours() - 1); console.log(isInThePast(oneHourAgo)); // 👉️ true console.log(isInThePast(new Date('2050-03-24'))); // 👉️ false
现在该函数检查提供的日期是否是过去至少 1 毫秒,而不是至少 1 天。

我们可以比较日期,因为在幕后每个日期都存储一个时间戳 – 1970 年 1 月 1 日和给定日期之间经过的毫秒数。

索引.js
const date = new Date('2022-08-23'); // 👇️ 1661212800000 console.log(date.getTime());

每个日期都在后台存储一个时间戳,因此默认行为是比较日期的时间戳,即使您没有
getTime()在每个日期显式调用该方法也是如此。

发表评论