Date.toLocaleDateString日期格式化输出月份与输入不符问题咨询
代码运行逻辑及结果成因解释
核心原因
JavaScript Date 构造函数的月份入参采用0起始计数规则,和日常使用的112对应112月的习惯不同:
- 入参0对应1月(January)
- 入参1对应2月(February)
- ...
- 入参5对应6月(June)
- 入参11对应12月(December)
你代码中传入的月份参数是05,对应公历6月,所以输出June 10, 2020是符合设计规范的正常结果。
完整执行流程
- 运行
const date = new Date(2020, 05, 10):
按照Date构造函数的参数解析规则,生成对应2020年6月10日的日期对象。 - 定义
options配置:指定格式化输出规则为数字年份、完整月份名称、数字日期。 - 调用
date.toLocaleDateString('en', options):将日期对象按英文区域的展示规则、结合配置做本地化格式化,得到June 10, 2020字符串。 - 控制台打印该字符串结果。
拓展说明
如果预期得到5月10日的结果,只需将月份入参改为4即可:const date = new Date(2020, 04, 10),格式化后输出为May 10, 2020。
内容的提问来源于stack exchange,提问作者Akki619
相关产品推荐
相关产品推荐

