我正在为我的网站订购表格。对于订单,要求有4天的明确通知时间(即周一为周五,周二为周六等),但对于周六和周日下达的订单,他们可以获取的最短日期为下一个周四。还不允许他们选择星期日作为交货日。
这是我的日期字段:
<p>What date is this required for?</p>
<p>Please note, we need 4 days clear notice(Monday-Friday)</p>
<input id="datefield" name="date" type='date' onkeydown="return false" min='2019-05-10' max='2000-13-13'></input>
到目前为止,这是我不让他们选择星期天并提前4天进行最早日期选择的js
<script>
var date = document.querySelector('[type=date]');
function noSundays(e){
var day = new Date( e.target.value ).getUTCDay();
// Days in JS range from 0-6 where 0 is Sunday and 6 is Saturday
if( day == 0 ){
e.target.setCustomValidity('Unfortunately we cannot deliver cakes on a Sunday, please select another day');
} else {
e.target.setCustomValidity('');
}
}
date.addEventListener('input',noSundays);
</script>
<script>
var today = new Date();
var dd = today.getDate()+4;
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd
}
if(mm<10){
mm='0'+mm
}
today = yyyy+'-'+mm+'-'+dd;
document.getElementById("datefield").setAttribute("min", today);
</script>
所以这很好并且可行,但是如果他们订购的日期是他们可以选择的最小日期是下一个星期四的星期六或星期日,我将如何做条件?
答案 0 :(得分:0)
设法通过执行以下操作使其工作:
var today = new Date(); // current date/time
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd
}
if(mm<10){
mm='0'+mm
}
if (dd == "03" || dd =="04" || dd=="5" || dd=="06") {
dd = today.getDate()+5;
if(dd<10){
dd='0'+dd
}
today = yyyy+'-'+mm+'-'+dd;
document.getElementById("datefield").setAttribute("min", today);
}
else {
dd = today.getDate()+4;
if(dd<10){
dd='0'+dd
}
today = yyyy+'-'+mm+'-'+dd;
document.getElementById("datefield").setAttribute("min", today);
}
可能不是最好的方法,但是它会起作用