layui文本框实现选择起始时间和结束时间
首先要调用layui时间插件必须下载layui.js文件,这个可以在官网去下载的(https://www.layui.com/),我这个功能是可以选择当前时间的前一天,或者后一小时的时间,这个根据具体需求可以修改的:
如下图所示:
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<input type="text" id="text1" datatype='ddd1' value="2018-9-2 18:43:30" />
<input type="text" id="text2" datatype='ddd2' value="2018-9-2 18:43:30" />
<input type="text" id="text3" datatype='ddd3' />
<input type="text" id="text4" datatype='ddd4' />
</body>
</html>
js代码:(代码中写有注释,大家可以看看,有不懂的可以问我)
<script src="../demo/js/jquery-1.11.3.js"></script>
<script src="layui.js"></script>
<script>
timeshowtwo('#text1', '#text2');
timeshowtwo('#text3','#text4');
//timeshowtwo('#text4', '#text3');
function timeshowtwo(t1, t2) {
layui.use('laydate', function() {
var min = '1440';//获取多少分钟后的时间
var laydate = layui.laydate;
var currentime = frontOneHour('yyyy-MM-dd hh:mm:ss') //当前时间格式化
//第一个框的时间
var oneTime = beforeTime(currentime,60)//获取当前时间前一小时的时间
var twoTime = "";
//常规用法
laydate.render({
elem: t1,
calendar: true,//显示公历节日
trigger: 'click',
type: 'datetime',
value: new Date(),
format: 'yyyy-M-d H:m:s',
done: function(value, date) {
var datatype=$(t1).attr('datatype');
if(datatype=='ddd1'){
console.log(datatype+'第1个框');
//min=$('jjkkk')
//获取第一个时间框下拉分钟的值
// if(parseInt(min) > 1440) {
// //让第一个下拉框不能选中
// }
}else if(datatype=='ddd3'){
console.log(datatype+'第3个框');
//获取第二个时间框下拉分钟的值
}else if(datatype=='ddd5'){
console.log(datatype+'第5个框');
//获取第二个时间框下拉分钟的值
}
twoTime=afterTime(value, min);
laydate.render({
elem: t2,
calendar: true,
type: 'datetime',
value: twoTime,//
format: 'yyyy-M-d H:m:s',
});
}
});
//默认1小时之后的时间
laydate.render({
elem: t2,
type: 'datetime',
value: beforeTime(currentime, 60),
format: 'yyyy-M-d H:m:s',
done: function(value, date) {
var datatype=$(t2).attr('datatype');
if(datatype=='ddd2'){
console.log(datatype+'第2个框');
//min=$('jjkkk')
//获取第一个时间框下拉分钟的值
// if(parseInt(min) > 1440) {
// //让第一个下拉框不能选中
// }
}else if(datatype=='ddd4'){
console.log(datatype+'第4个框');
//获取第二个时间框下拉分钟的值
}else if(datatype=='ddd6'){
console.log(datatype+'第6个框');
//获取第二个时间框下拉分钟的值
}
oneTime=beforeTime(value, min);
laydate.render({
elem: t1,
calendar: true,
type: 'datetime',
value: oneTime,
format: 'yyyy-M-d H:m:s'
});
}
});
});
}
function frontOneHour(fmt) {
var currentTime = new Date(new Date().getTime())
// console.log(currentTime) // Wed Jun 20 2018 16:12:12 GMT+0800 (中国标准时间)
var o = {
'M+': currentTime.getMonth() + 1, // 月份
'd+': currentTime.getDate(), // 日
'h+': currentTime.getHours(), // 小时
'm+': currentTime.getMinutes(), // 分
's+': currentTime.getSeconds(), // 秒
'q+': Math.floor((currentTime.getMonth() + 3) / 3), // 季度
'S': currentTime.getMilliseconds() // 毫秒
}
if(/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (currentTime.getFullYear() + '').substr(4 - RegExp.$1.length))
for(var k in o) {
if(new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
}
return fmt;
}
//获取选择时间之后多少分钟的时间
function afterTime(value, t) {
var date = new Date(value);
var seperator1 = "-";
var seperator2 = ":";
//前十分钟时间
var minutes = parseInt(t);
var interTimes = minutes * 60 * 1000;
var interTimes = parseInt(interTimes);
date = new Date(Date.parse(date) + interTimes);
var month = date.getMonth() + 1;
var strDate = date.getDate();
var hour = date.getHours();
var minutes = date.getMinutes();
if(month >= 1 && month <= 9) {
month = "0" + month;
}
if(strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
if(hour >= 0 && hour <= 9) {
hour = "0" + hour;
}
if(minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate +
" " + hour + seperator2 + minutes +
seperator2 + date.getSeconds();
return currentdate;
}
//获取选择时间之前多少分钟的时间
function beforeTime(value, t) {
var date = new Date(value);
var seperator1 = "-";
var seperator2 = ":";
//前十分钟时间
var minutes = parseInt(t);
var interTimes = minutes * 60 * 1000;
var interTimes = parseInt(interTimes);
date = new Date(Date.parse(date) - interTimes);
var month = date.getMonth() + 1;
var strDate = date.getDate();
var hour = date.getHours();
var minutes = date.getMinutes();
if(month >= 1 && month <= 9) {
month = "0" + month;
}
if(strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
if(hour >= 0 && hour <= 9) {
hour = "0" + hour;
}
if(minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate +
" " + hour + seperator2 + minutes +
seperator2 + date.getSeconds();
return currentdate;
}
</script>