1. 界面实现
<div class="layui-inline">
<label class="layui-form-label">日期</label>
<div class="layui-input-inline layui-input-wrap" style="width:318px!important;">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-date"></i>
</div>
<input type="text" id="ordertime" name="ordertime" autocomplete="off" value="" class="layui-input" />
<input type="hidden" id="orderstime" name="orderstime" value="" />
<input type="hidden" id="orderetime" name="orderetime" value="" />
</div>
</div>
laydate.render({
elem: '#ordertime',
type: 'datetime',
range: true,
rangeLinked: true,
shortcuts: [
{
text: '前三天',
value: function () { return dateRange("前三天"); }()
},
{
text: '昨天',
value: function () { return dateRange("昨天"); }()
},
{
text: '今天',
value: function () { return dateRange("今天"); }()
},
{
text: '上周',
value: function () { return dateRange("上周"); }()
},
{
text: '本周',
value: function () { return dateRange("本周"); }()
},
{
text: "上月",
value: function () { return dateRange("上月"); }()
},
{
text: "本月",
value: function () { return dateRange("本月"); }()
},
{
text: "上季度",
value: function () { return dateRange("上季度"); }()
},
{
text: "本季度",
value: function () { return dateRange("本季度"); }()
},
{
text: "上年",
value: function () { return dateRange("上年"); }()
},
{
text: "本年",
value: function () { return dateRange("本年"); }()
},
],
done: function (value, date, endDate) {
var orderstime = null;
var orderetime = null;
if (!!value) {
var sp_value = value.split(' - ');
if (sp_value.length == 2) {
orderstime = sp_value[0];
orderetime = sp_value[1];
}
}
$("#orderstime").val(orderstime);
$("#orderetime").val(orderetime);
}
});
function dateRange(val) {
let value = [];
let startTime, endTime;
let now = new Date();
let nowDayOfWeek = now.getDay() - 1;
let nowDay = now.getDate();
let nowMonth = now.getMonth();
let nowYear = now.getFullYear();
let jd = Math.ceil((nowMonth + 1) / 3);
switch (val) {
case "前三天":
startTime = new Date(nowYear, nowMonth, nowDay - 3);
endTime = new Date(nowYear, nowMonth, nowDay, 23, 59, 59)
break;
case "昨天":
startTime = new Date(nowYear, nowMonth, nowDay - 1);
endTime = new Date(nowYear, nowMonth, nowDay - 1, 23, 59, 59)
break;
case "今天":
startTime = new Date(nowYear, nowMonth, nowDay);
endTime = new Date(nowYear, nowMonth, nowDay, 23, 59, 59)
break;
case "明天":
startTime = new Date(nowYear, nowMonth, nowDay + 1);
endTime = new Date(nowYear, nowMonth, nowDay + 1, 23, 59, 59)
break;
case "上周":
startTime = new Date(nowYear, nowMonth, (nowDay - nowDayOfWeek) - 7);
endTime = new Date(nowYear, nowMonth, (nowDay + 6 - nowDayOfWeek) - 7, 23, 59, 59)
break;
case "本周":
startTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
endTime = new Date(nowYear, nowMonth, nowDay + 6 - nowDayOfWeek, 23, 59, 59)
break;
case "上月":
startTime = new Date(nowYear, nowMonth - 1, 1);
endTime = new Date(nowYear, nowMonth, 0, 23, 59, 59)
break;
case "本月":
startTime = new Date(nowYear, nowMonth, 1);
endTime = new Date(nowYear, nowMonth + 1, 0, 23, 59, 59)
break;
case "上季度":
startTime = new Date(nowYear, ((jd - 1) - 1) * 3, 1);
endTime = new Date(nowYear, (jd - 1) * 3, 0, 23, 59, 59)
break
case "本季度":
startTime = new Date(nowYear, (jd - 1) * 3, 1);
endTime = new Date(nowYear, jd * 3, 0, 23, 59, 59)
break
case "上年":
startTime = new Date(nowYear - 1, 0, 1);
endTime = new Date(nowYear - 1, 11, 31, 23, 59, 59)
break
case "本年":
startTime = new Date(nowYear, 0, 1);
endTime = new Date(nowYear, 11, 31, 23, 59, 59)
break
}
value.push(startTime);
value.push(endTime);
return value;
};