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

经Webpacker处理的JS中getDate无法正确设置endDate的原因

问题解析:为何endDate无法正确设置为当前日期前2天?

你遇到的问题核心是Date对象方法使用错误——你误用了getDate()来修改日期,而这个方法本身只是用来获取当前日期的,不是用来设置的。

错误原因拆解

看这段出问题的代码:

var endDate = new Date();
endDate.getDate(endDate.getDate() - 2); // 这里是错误的!

getDate()方法的作用是返回当前Date对象的日份(1-31),它不接受参数,所以你传的endDate.getDate() - 2根本不会生效,endDate自然还是初始的当前日期(2020-12-19),导致fdatepicker显示的还是当前日期。

而startDate的代码是正确的,因为你用了setFullYear()——这是专门用来设置年份的方法,接受参数并会修改Date对象本身。

修正后的代码

把getDate()改成setDate()就可以了,setDate()才是用来设置Date对象日份的方法,接受一个整数参数(1-31):

$(function () {
  var endDate = new Date();
  endDate.setDate(endDate.getDate() - 2); // 正确写法:用setDate修改日期
  $('#date_to').fdatepicker({
    initialDate: endDate,
    format: 'yyyy-mm-dd',
    disableDblClickSelection: true,
    leftArrow: '<<',
    rightArrow: '>>',
    closeIcon: 'X',
    closeButton: true
  });
});

这样endDate就会被设置为当前日期(2020-12-19)的前2天,也就是2020-12-17,fdatepicker就能正确显示这个日期了。

小提示

Date对象的方法里,getXXX()系列都是获取对应时间部分的值,setXXX()系列才是用来设置对应时间部分的,使用的时候要注意区分哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:03:20