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

使用DayJS设置1月最后一天时出现日期显示异常的问题

DayJS日期解析异常问题原因

1. dayjs('2014-01-31') 显示为1月30日的原因

这是时区转换导致的显示差异:

  • DayJS默认以本地时区解析日期字符串'2014-01-31',内部存储的是你本地时区的2014年1月31日00:00:00。
  • 直接执行console.log时,DayJS会输出该时间对应的UTC格式。如果你的本地时区比UTC早1小时(如UTC+1时区),本地的1月31日00:00转换为UTC就是1月30日23:00,因此控制台显示2014-01-30T23:00:00.000Z。
  • 验证方式:执行lastDay.format('YYYY-MM-DD')会输出2014-01-31,说明DayJS实际存储的日期是正确的。

2. dayjs('2014-01-32') 显示为1月31日的原因

这是DayJS的自动日期修正机制导致:

  • DayJS默认会自动修正非法日期。1月最大天数为31,传入的'2014-01-32'属于无效日期,会被自动调整为当月最后一天(1月31日)。
  • 再结合时区转换,最终UTC格式输出呈现为2014-01-31T23:00:00.000Z(具体时间取决于你的本地时区与UTC的偏移量)。

内容的提问来源于stack exchange,提问作者four-eyes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:55:19