Javascript新手如何从datepicker返回的newDates对象中提取指定日期值
问题原因
你调用getDay()报错的核心原因是newDates不是单个Date对象,而是包含多个Date对象的数组,你使用的是支持多选的日期选择组件,选中的日期会以数组格式返回,数组本身不具备getDay等日期方法。
解决方法
- 取单个指定日期(以第一个选中日期为例)
$(this).datepicker('setUTCDates', newDates); // 按数组索引取出对应日期对象后,再调用日期相关方法 console.log(newDates[0].getDay()); // 注意:getDay()返回0-6对应周日到周六,若要获取当月的日期数值,改用getDate() console.log(newDates[0].getDate());
- 遍历所有选中日期做批量处理
newDates.forEach(selectedDate => { // 对每个选中的日期对象做自定义处理 console.log(selectedDate.toISOString().split('T')[0]); // 输出YYYY-MM-DD格式的日期 })
额外说明
你之前将newDates转为Map的操作属于多余操作:数组调用Object.entries返回的就是[[0, 第一个日期], [1, 第二个日期]...]的结构,和直接按数组索引取值的效果完全一致,不需要额外转换。
推荐学习的基础知识
你可以优先补充以下JS相关内容:
- JS数组的常用操作:索引访问、遍历方法、类型判断
- JS内置Date对象的常用API、类型判断方法
- 浏览器控制台调试技巧:展开打印的变量查看结构,可清晰识别变量的类型、层级与属性,快速判断是数组还是单个对象。
内容的提问来源于stack exchange,提问作者user14584183
相关产品推荐
相关产品推荐

