使用 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 个参数:
hoursValue
0
– 介于和之间的整数23
,表示小时。minutesValue
(可选)- 和之间的整数0
,59
代表分钟。secondsValue
(可选)- 和之间的整数0
,59
表示秒数。msValue
(可选)- 和之间的数字0
,999
代表毫秒。
在第一个示例中,我们传递
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 格式存储实际值。