The first renderings
jsp month selection
<input name="sdate" id="sdate" class="layui-input" lay-key="17" type="text" />
Cascade week
<select name="edate" id="edate" lay-filter="edateFilter"></select>
$(function () {
initSelect(getInfo('<%=sdate %>'));
laydate.render ({
elem: '#sdate',
type: 'month The', Change: function (value, DATE, endDate) {// reset when the month selected circumferential drop-down box
. $ ( '# sdate') val ( value);
$ ( '# layui-laydate17') remove ();. // delete
initSelect (getInfo (value));
}
});
});
function initSelect(array){
layui.use(['form' ], function() {
var form=layui.form;
$('#edate').empty();
for(var j=0;j<array.length;j++){
var obj = array[j];
var flag = isDateBetween('<%=edate %>',obj.from,obj.to);
var ss = '<option value="' +obj.from+'=='+obj.to + '"';
if(flag){
ss += ' selected ';
curr1 = obj.from; curr2 = obj.to;
}
ss += ' >'+ formatName(j,obj.from,obj.to)+ '</option>';
$ ( '# eDate). Appendix (ss);
}
Form.render ( 'SELECT');
});
}
/ **
* Dates determining returns true in an interval within the interval, otherwise returns to false
* @param dateString date string
* @param startDateString interval start date string
* @param endDateString interval end date string
* Number The @Returns {}
* /
function isDateBetween (dateString, startDateString, endDateString) {
IF (isEmpty (dateString)) {
Alert ( "dateString not empty");
return;
}
IF ( isEmpty (startDateString)) {
Alert ( "startDateString not empty");
return;
}
if(isEmpty(endDateString)){
alert("endDateString不能为空");
return;
}
var flag = false;
var startFlag = (dateCompare(dateString, startDateString) < 1);
var endFlag = (dateCompare(dateString, endDateString) > -1);
if(startFlag && endFlag){
flag = true;
}
return flag;
};
function dateCompare(dateString, compareDateString){
if(isEmpty(dateString)){
alert("dateString不能为空");
return;
}
if(isEmpty(compareDateString)){
alert("compareDateString不能为空");
return;
}
var dateTime = dateParse(dateString).getTime();
var compareDateTime = dateParse(compareDateString).getTime();
if(compareDateTime > dateTime){
return 1;
}else if(compareDateTime == dateTime){
return 0;
}else{
return -1;
}
};
function dateParse(dateString){
var SEPARATOR_BAR = "-";
var SEPARATOR_SLASH = "/";
var SEPARATOR_DOT = ".";
var dateArray;
if(dateString.indexOf(SEPARATOR_BAR) > -1){
dateArray = dateString.split(SEPARATOR_BAR);
}else if(dateString.indexOf(SEPARATOR_SLASH) > -1){
dateArray = dateString.split(SEPARATOR_SLASH);
}else{
dateArray = dateString.split(SEPARATOR_DOT);
}
return new Date(dateArray[0], dateArray[1]-1, dateArray[2]);
};
function formatName(val,from,to){
var str = '第';
if(val == 0){ str += '一';
}else if(val == 1){ str += '二';
}else if(val == 2){ str += '三';
}else if(val == 3){ str += '四';
}else if(val == 4){ str += '五';
}else if(val == 5){ str += '六';
}else if(val == 6){str += '七'; }
str += '周(';
var fromDate = new Date(from);
str += (fromDate.getMonth() + 1) + '月' + fromDate.getDate()+'日';
str += ' - ';
var toDate = new Date(to);
str += (toDate.getMonth() + 1) + '月' + toDate.getDate()+'日';
str += ')';
return str;
}
function getInfo(val) {
var array = new Array();
var year = parseInt(val.split('-')[0],10),
month = parseInt(val.split('-')[1],10);
var d = new Date();
d.setFullYear(year, month-1, 1);
var w1 = d.getDay();
if (w1 == 0) w1 = 7;
d.setFullYear(year, month, 0);
var dd = d.getDate();
if (w1 != 1) d1 = 7 - w1 + 2;
else d1 = 1;
week_count = Math.ceil((dd-d1+1)/7);
for (var i = 0; i < week_count; i++) {
var monday = d1+i*7;
var sunday = monday + 6;
var from = year+'-'+formatD(month)+'-'+formatD(monday);
var to = '';
if (sunday <= dd) {
= + year to '-' + formatD (month The) + '-' + formatD (Sunday);
} the else {
d.setFullYear (year, month The-. 1, Sunday);
to d.getFullYear = () + '-' + formatD (d.getMonth () + 1) + '-' + formatD (d.getDate ());
}
iF (I == 0) {// first cycle when determining whether the first Monday 1 if not coupled Kuayue number 1 comprises circumferential
var = from.split Data ( '-');
var mm new new = a Date ();
mm.setFullYear (Data [0], Data [1] -1, Data [ 2]);
var mm.getDate A = ();
IF (A>. 1) {// not a number. 1
var new new B = a Date ();
B.setFullYear (Data [0], Data [. 1] -1,A-1);
var t = GetDay(B);
var f = GetMonday(B);
var obj = new Object();
obj.from = f; obj.to = t;
array.push(obj);
}
}
var obj = new Object();
obj.from = from; obj.to = to;
array.push(obj);
}
return array;
}
function formatD(val){
var dd = parseInt(val,10);
if(dd < 10){
return '0'+dd;
}else{
return dd+'';
}
}
Function GetMonday (dd) {
var dd.getDay Week = (); // week number acquisition time
var minus Week Week = -. 1:?. 6;
dd.setDate (dd.getDate () - minus); // acquisition date minus days before
var dd.getFullYear Y = ();
var dd.getMonth m = () +. 1; // Get month
IF (m <10) m = '0' + m;
var D = dd.getDate ();
IF (D <10) D = '0' + D;
return Y + '-' + m + '-' + D;
}
function GetDay (dd) {
var dd.getFullYear Y = ();
var m = dd.getMonth () + 1; // Get month
IF (m <10) m = '0' + m;
var dd = D.getDate();
if(d < 10) d = '0' + d;
return y + '-' + m + '-' + d;
}