答案 0 :(得分:1)
这正是您所需要的。
首先,您必须在split
中使用wrap
个值并array
。然后,您必须检查值是否为连续days
。
function diffDays(date1,date2){
return parseInt((date2 - date1) / (1000 * 60 * 60 * 24));
}
$('button').click(function(){
var values=$('input').val().split(',').map(function(item){
return new Date(item);
});
var result=checkValues(values);
if(result==1){
alert('Yes');
}
else{
alert('No');
}
});
function checkValues(values){
values.sort(function(a,b){return a.getTime() - b.getTime()});
if(values.length<3){
return 0;
}
else{
var exist=0;
console.log(values);
for(i=0;i<values.length-2;i++){
if(diffDays(values[i],values[i+1])==1 && diffDays(values[i+1],values[i+2])==1){
exist=1;
}
}
return exist;
}
}
答案 1 :(得分:0)
您可以根据需要试用此代码:jsfiddle.net/bharatsing/LcqM7/707/
此检查日期在同一行,但不是必须按相同的顺序排列。
<div id="divDates">
<input id="txtDates" type="text" type="text" class="form-control" />
<button id="btnValidate">
Validate
</button>
</div>
$('#divDates input').datepicker({
multidate: true
});
$('#btnValidate').click(function(){
var values=$('#txtDates').val().split(',');
checkDatesInRow(values);
});
function checkDatesInRow(Dates){
var curr = new Date(Dates[0]); // get current date
var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
var last = first + 6; // last day is the first day + 6
var firstday = new Date(curr.setDate(first));
var lastday = new Date(curr.setDate(last));
var IsValid=true;
for(var i=0;i<Dates.length;i++){
var dateSelected = new Date(Dates[i]);
if(dateSelected>=firstday && dateSelected<=lastday){
}
else{
IsValid=false;
}
}
if(IsValid){
alert("In same row");
}
else{
alert("Not in same row");
}
}