You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js v14.15.1环境下Date对象调用getYear()、getDay()返回结果异常

Date方法返回值异常问题说明

第一个异常:getDay()返回6不符合预期

  • Date构造函数的月份入参是0起始计数的,0对应1月,11对应12月。你传入的第二个参数为4,实际创建的是2021年5月1日的日期对象,而非你预期的2021年4月1日。
  • getDay()方法返回的是星期几的索引,规则为:周日返回0,周一返回1,周六返回6。2021年5月1日为周六,因此返回6属于正常结果。
  • 如果你需要获取日期是当月的第几天,应该使用getDate()方法而非getDay(),该方法会直接返回1-31的日期数值。

第二个异常:getYear()返回121不符合预期

  • getYear()属于已被ECMAScript标准废弃的方法,其设计逻辑为返回「当前年份 - 1900」的计算结果,2021-1900=121,因此返回结果符合方法定义。
  • 如需获取完整4位年份,替换为getFullYear()方法即可得到预期的2021。

修正后的代码示例

// 4月对应月份参数为3
const date = new Date(2021, 3, 1) 
console.log(date.getDate()) // 获取当月第几天,返回1
console.log(date.getFullYear()) // 获取完整年份,返回2021

内容的提问来源于stack exchange,提问作者MrSolarius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 14:09:04