由于未知原因,getDate总是返回1而不是28。我正在使用NodeJS 10.6.0和Typescript 3.2.2。



const lastDay = new Date();
lastDay.setDate(0);
lastDay.setHours(24, 59, 59, 999);
console.log(lastDay, "|", lastDay.getDate()); // 2019-02-28T23:59:59.999Z | 1





编辑:我正在尝试在最后一个毫秒获取上个月的最后一天。那么setDate(0)是正确的。我不明白的是,为什么当我打印时间时,我得到28T23:59:59.999ZgetDate()返回第二天。

Edit2:有效地使用getUTCDate修复了我的问题,由于它的实现方式很奇怪,它对我仍然很奇怪。 IMO的每种方法都应更明确地命名,以避免此类问题。

最佳答案

实际上是正确的:


  Date.prototype.getDate()
  
  根据当地时间返回指定日期的月份(1-31)。


您可以这样测试:

const lastDay: Date = new Date();
lastDay.setDate(3);
lastDay.setHours(24, 59, 59, 999);
console.log(lastDay, "|", lastDay.getDate()); // 2019-03-03T23:59:59.999Z | 4

关于javascript - Date.getDate总是返回1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55441584/

10-10 11:09