使用 JavaScript 将日期初始化为午夜

使用 JavaScript 将日期初始化为午夜

Initialize a Date to Midnight using JavaScript

使用该setHours()方法将日期初始化为午夜,例如
d.setHours(0, 0, 0, 0). setHours方法将小时、分钟、秒和毫秒作为参数,并在Date
实例上设置值。

索引.js
// Time of writing article = 14th January, 2022 // ✅ Set date to Nearest Midnight in the Past const d1 = new Date(); d1.setHours(0, 0, 0, 0); console.log(d1); // Fri Jan 14 2022 00:00:00 // ✅ Set date to Nearest Midnight in the future const d2 = new Date(); d2.setHours(24, 0, 0, 0); console.log(d2); // Sat Jan 15 2022 00:00:00

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

setHours方法采用以下

4 个参数:

  1. hoursValue0– 介于和之间的整数23,表示小时。
  2. minutesValue(可选)- 和之间的整数059代表分钟。
  3. secondsValue(可选)- 和之间的整数059表示秒数。
  4. msValue(可选)- 和之间的数字0999代表毫秒。
在第一个示例中,我们传递0了所有 4 个值以将对象设置为过去最近的午夜。 Date

在第二个示例中,我们24将小时值作为小时值传递,以将日期设置为未来最接近的午夜。

23当传递的小时数大于该值时,该对象会自动滚动到第二天。 Date

请注意,该setHours()方法根据访问者的本地时间(访问者计算机所在的时区)设置时间。

如果要将日期初始化为 UTC 中的午夜,请使用setUTCHours()
而不是
setHours().

索引.js
// ✅ (UTC) Set date to Nearest Midnight in the Past const d1 = new Date(); d1.setUTCHours(0, 0, 0, 0); console.log(d1); // ✅ (UTC) Set date to Nearest Midnight in the future const d2 = new Date(); d2.setUTCHours(24, 0, 0, 0); console.log(d2);

我们使用了
setUTCHours
方法而不是
setHours.

两者之间的区别在于setHours,根据当地时间(访问者的本地时间)在日期上设置提供的值,而该setUTCHours方法根据世界时进行设置。

UTC(协调世界时)和 GMT 共享相同的当前时间。

两者的区别在于UTC是时间标准,GMT是时区。

UTC 是国际时间标准,用于时区之间的一致性。

例如,如果您在数据库中存储当地时间午夜 (00:00),您将不知道在东京(日本)、巴黎(法国)、纽约(美国)等地是否是午夜。这些都是相隔数小时的不同时刻。

为了保持一致性,当您必须向用户呈现日期和时间时,您应该主要使用本地时间,但以 UTC 格式存储实际值。