Javascript 破损交货估算计算器
我希望有人能帮我弄清楚如何编写一个应用程序,让你可以使用jquery datepicker选择邮寄日期,从下拉列表中选择标准或头等舱配送,并计算预计配送日期窗口,标准为7-12天,头等舱为3-5天 当[number]天内的邮件接受字符串输入时,我让它工作,但当我为日期选择器添加代码时,它就坏了 我还需要将周末和假日排除在运费计算之外 以下是完整笔的链接: $'CalculateShippingetimate'。单击函数事件{ //阻止按钮“提交”和重新加载页面 违约事件; //捕获邮寄日期 var$mailingDate=$mailingDate.val; var$postageType=$postageType.val; var$shipStateShippingDuration=eval'data.shipTimes.+$postageType; var$totalShippingTime=parseInt$mailingDate+parseInt$shipStateShippingDuration; //创建日期 var日期=新日期; var month=date.getMonth+1; var day=date.getDate+parseInt$totalShippingTime; var year=date.getFullYear; 邮寄 邮资: 标准 头等舱Javascript 破损交货估算计算器,javascript,jquery,html,css,jquery-ui-datepicker,Javascript,Jquery,Html,Css,Jquery Ui Datepicker,我希望有人能帮我弄清楚如何编写一个应用程序,让你可以使用jquery datepicker选择邮寄日期,从下拉列表中选择标准或头等舱配送,并计算预计配送日期窗口,标准为7-12天,头等舱为3-5天 当[number]天内的邮件接受字符串输入时,我让它工作,但当我为日期选择器添加代码时,它就坏了 我还需要将周末和假日排除在运费计算之外 以下是完整笔的链接: $'CalculateShippingetimate'。单击函数事件{ //阻止按钮“提交”和重新加载页面 违约事件; //捕获邮寄日期 v
通过查看您的代码片段,您似乎正在尝试手动滚动JS Date框架中已经存在的许多功能 获得开始日期和发货天数后,您可以将这些天数相加以创建最终发货日期。从那里开始,在循环中,您可以逐日检查当前日期索引是否为工作日,是否使用date.getDay 这样,您可以检查周六[6]和周日[0],然后在最终日期的基础上添加所需的天数 我在下面的代码版本中加入了一些控制台调试,但没有添加代码假日。可能会检查假日是否使用数组或映射。获取一年的所有假日日期,然后让当前索引检查假日数组/映射,以查看是否有匹配项。如果有,请在最终日期上再添加一天 addDays的函数是从中提取出来的。它添加了一些解释,我想你会发现这些解释很有帮助
function addDays(date, days) {
const copy = new Date(Number(date))
copy.setDate(date.getDate() + days)
return copy
}
// FINAL SHIPPING ESTIMATE
$('#calculateShippingEstimate').click(function( event ) {
event.preventDefault();
let mailingDateVal = $("#mailingDate").val();
let shippingDuration = data.shipTimes[$("#postageType").val()];
let mailingDate = new Date(mailingDateVal);
console.log("final Date: " + addDays(mailingDate, shippingDuration));
let finalDate = addDays(mailingDate, shippingDuration)
let mailingDateIndex = new Date(mailingDate);
while(mailingDateIndex <= finalDate) {
console.log("current mailDateIndex: " + mailingDateIndex)
if (mailingDateIndex === finalDate) {
break;
}
// Weekend
console.log(mailingDateIndex.getDay());
if (mailingDateIndex.getDay() == 0 || mailingDateIndex.getDay() == 6) {
console.log("weekend day hit! Adding day to final...")
finalDate = addDays(finalDate, 1);
}
mailingDateIndex = addDays(mailingDateIndex, 1);
}
});