javascript - Date.getDate 总是返回 1
问题描述
由于未知原因,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.999Z
并getDate()
在第二天返回时。
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
推荐阅读
- python - 带有嵌套字典值/参数的 Python POST 请求
- sql - 动态增加数组的大小
- orocommerce - Oro PriceList 业务单位所有权
- vba - 更改 Visio 形状名称以匹配用户输入的形状数据
- c++ - 在 GCC 10.3.0 中找不到 _mm256_rem_epu64 内在函数
- html - 根据 created() 数据打开/关闭多个切换按钮
- javascript - Apexcharts - 在 jsfiddle 中运行 - 但不是我的 PC
- r - 如何填补将相同值与特定因素相关联的空白?R
- reflection - 在运行时修改 swagger 注释
- jquery - ajax成功后Jquery alert() 到模态