1. 程式人生 > >layui文字框實現選擇起始時間和結束時間

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>