推荐阅读
我们知道, Date 实例有一些 set 方法, 如设置月份 setMonth, 设置日期 setDate, 设置时分秒 setHours, 他们都可以接收零或者负数。
我们知道, setMonth(0) 表示将 Date 实例的月份设置为第 0 个月, 即 "1月"
const d = new Date('2023-06-06 06:06:06')
d.setMonth(0)
// 2023/1/6 06:06:06
console.log(d.toLocaleString())
我们也知道, setHours(0) 表示将 Date 实例的 hour 设置为第 0 小时, 即 "0点钟"
const d = new Date('2023-06-06 06:06:06')
d.setHours(0)
// 2023/6/6 00:06:06
console.log(d.toLocaleString())
但, setDate(0) 并不会将日期设置为本月第 0 天(1 号), 而是上月的最后一天...
const d = new Date('2023-06-06 06:06:06')
d.setDate(0)
// 2023/5/31 06:06:06
console.log(d.toLocaleString())
或许是因为 getDate() 返回值是 1-31?
同理, 参数为 -1 就显然了
如非特别声明,本站作品均为原创,遵循【自由转载-保持署名-非商用-非衍生 创意共享 3.0 许可证】。
对于转载作品,如需二次转载,请遵循原作许可。