Laravel项目中Persian Datepicker add函数自定义初始日期求助
解决Persian Datepicker自定义初始日期调用add函数的问题
核心解决思路:Persian Datepicker的构造函数支持传入自定义日期字符串来初始化实例,而非默认使用当前日期。你只需要将获取到的起始日期startdate传入persianDate构造函数,再基于该实例调用add方法完成日期计算即可。
原代码问题分析
你当前的代码中,new persianDate()每次都会创建一个基于当前日期的实例,所以调用add后得到的是今日加上指定天数的结果,而非基于你选择的起始日期计算。
修改后的完整代码
$('#deadline').change(function() { var dval = parseInt($('#deadline').val()); var startdate = document.getElementById("startdate").value; var inputF = document.getElementById("enddate"); // 先判断起始日期是否有效,避免空值或无效格式导致错误 if (!startdate) { inputF.value = ''; return; } // 基于起始日期初始化persianDate实例,再添加指定天数 var edate = new persianDate(startdate).add('days', dval).format('YYYY/MM/DD'); inputF.value = edate; });
额外注意事项
- 确保
startdate的格式是Persian Datepicker能识别的格式(比如YYYY/MM/DD),如果你的日期选择器输出的是其他格式(如YYYY-MM-DD),可以在构造实例时指定格式:new persianDate(startdate, 'YYYY-MM-DD') - 如果
dval可能为空或非数字,建议增加类型校验,避免add方法执行异常。
内容的提问来源于stack exchange,提问作者jason bikari
相关产品推荐
相关产品推荐

