mirror of https://github.com/layui/layui
				
				
				
			
		
			
				
	
	
		
			522 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			522 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
<!DOCTYPE html>
 | 
						||
<html>
 | 
						||
<head>
 | 
						||
<meta charset="utf-8">
 | 
						||
<meta name="renderer" content="webkit">
 | 
						||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
						||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
 | 
						||
<title>日期模块 - layui</title>
 | 
						||
 | 
						||
<link rel="stylesheet" href="../src/css/layui.css">
 | 
						||
 | 
						||
<style>
 | 
						||
body{padding: 50px 100px;}
 | 
						||
.layui-inline{margin-right: 15px;}
 | 
						||
</style>
 | 
						||
</head>
 | 
						||
<body>
 | 
						||
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test-first" placeholder="带遮罩">
 | 
						||
</div>
 | 
						||
 | 
						||
<br>
 | 
						||
<hr>
 | 
						||
 | 
						||
范围选择1:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test1">
 | 
						||
</div>
 | 
						||
 | 
						||
<br>
 | 
						||
<hr>
 | 
						||
 | 
						||
<div class="layui-form">
 | 
						||
<div class="layui-form-item">
 | 
						||
  <div class="layui-inline">
 | 
						||
    <label class="layui-form-label">范围选择2</label>
 | 
						||
    <div class="layui-inline" id="test1-2">
 | 
						||
      <div class="layui-input-inline">
 | 
						||
        <input type="text" autocomplete="off" id="test-startDate-1" class="layui-input" placeholder="开始日期">
 | 
						||
      </div>
 | 
						||
      <div class="layui-form-mid">-</div>
 | 
						||
      <div class="layui-input-inline">
 | 
						||
        <input type="text" autocomplete="off" id="test-endDate-1" class="layui-input" placeholder="结束日期">
 | 
						||
      </div>
 | 
						||
    </div>
 | 
						||
  </div>
 | 
						||
</div>
 | 
						||
</div>
 | 
						||
 | 
						||
<br><hr>
 | 
						||
 | 
						||
日期选择器:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test2">
 | 
						||
</div>
 | 
						||
 | 
						||
开启快捷面板:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test2-1">
 | 
						||
</div>
 | 
						||
 | 
						||
<br><br><hr><br>
 | 
						||
 | 
						||
年选择器:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test3">
 | 
						||
</div>
 | 
						||
 | 
						||
年月选择器:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test4">
 | 
						||
</div>
 | 
						||
 | 
						||
时间时间器:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test5">
 | 
						||
</div>
 | 
						||
 | 
						||
<br><br><hr><br>
 | 
						||
 | 
						||
时间范围选择
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test55">
 | 
						||
</div>
 | 
						||
 | 
						||
自定义重要日:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test555">
 | 
						||
</div>
 | 
						||
 | 
						||
标注法定节假日及补班:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test5555">
 | 
						||
</div>
 | 
						||
 | 
						||
<br><br><hr><br>
 | 
						||
 | 
						||
 | 
						||
同时绑定多个:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input test-item">
 | 
						||
</div>
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input test-item">
 | 
						||
</div>
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input test-item">
 | 
						||
</div>
 | 
						||
 | 
						||
<br><br><hr><br>
 | 
						||
 | 
						||
 | 
						||
墨绿主题:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test6-1">
 | 
						||
</div>
 | 
						||
 | 
						||
自定义头部背景色:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test6-2">
 | 
						||
</div>
 | 
						||
 | 
						||
格子主题:
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test6-3">
 | 
						||
</div>
 | 
						||
 | 
						||
<br><br><hr><br>
 | 
						||
 | 
						||
<button class="layui-btn" id="test7">其它元素触发</button>
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test6">
 | 
						||
</div>
 | 
						||
<textarea></textarea>
 | 
						||
<button class="layui-btn" id="test9">外部事件触发</button>
 | 
						||
<div class="layui-inline">
 | 
						||
  <input type="text" class="layui-input" id="test8">
 | 
						||
</div>
 | 
						||
 | 
						||
<br><br><hr><br>
 | 
						||
直接嵌套在指定容器中:<br><br>
 | 
						||
<div class="layui-inline" id="test10"></div>
 | 
						||
<div class="layui-inline" id="test11" style="margin-left: 30px;"></div>
 | 
						||
 | 
						||
<script src="../src/layui.js" src1="http://local.res.layui.com/layui/release/laydate/dist/laydate.js" charset="utf-8"></script>
 | 
						||
<script>
 | 
						||
layui.use('laydate', function (laydate) {
 | 
						||
  //全局配置
 | 
						||
  laydate.set({
 | 
						||
    //trigger: 'focus'
 | 
						||
  });
 | 
						||
 | 
						||
  // 第一个任意示例
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test-first',
 | 
						||
    min: 0,
 | 
						||
    shade: [0.1, '#000'],
 | 
						||
    //max: '2016-12-30',
 | 
						||
    done: function () {
 | 
						||
      console.log('done', arguments);
 | 
						||
    },
 | 
						||
    onConfirm: function () {
 | 
						||
      console.log('confirm', arguments);
 | 
						||
    },
 | 
						||
    onNow: function () {
 | 
						||
      console.log('now', arguments);
 | 
						||
    },
 | 
						||
    onClear: function () {
 | 
						||
      console.log('clear', arguments);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  // 范围选择1
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test1', // 指定元素
 | 
						||
    type: 'datetime',
 | 
						||
    trigger: 'click',
 | 
						||
    // lang: 'en',
 | 
						||
    // theme: 'grid',
 | 
						||
    range: true, // 开启日期范围,默认使用“-”分割
 | 
						||
    // rangeLinked: true,
 | 
						||
    // min: '1970-1-1',
 | 
						||
    // max: '2021-5-9',
 | 
						||
    // value: '2021-05-09 12:06:09',
 | 
						||
    // value: '2021-05-08 - 2021-03-27',
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      console.log(value, date, endDate);
 | 
						||
 | 
						||
      //this.elem.val(123);
 | 
						||
    },
 | 
						||
    change: function (value, date, endDate) {
 | 
						||
      console.log(value, date, endDate);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  // return;
 | 
						||
 | 
						||
  // 范围选择2
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test1-2',
 | 
						||
    type: 'datetime',
 | 
						||
    range: ['#test-startDate-1', '#test-endDate-1'],
 | 
						||
    rangeLinked: true, // 是否开启日期范围选择时的区间联动标注模式
 | 
						||
    // value: ['2022-05-01', '2022-10-01'],
 | 
						||
    // value: '2022-05-01 - 2022-06-01',
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      console.log(value);
 | 
						||
      console.log(date);
 | 
						||
      console.log(endDate);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  // 日期选择器(单面板)
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test2',
 | 
						||
    //,format: 'yyyy年MM月dd日'
 | 
						||
    value: new Date(1534766888000),
 | 
						||
    //,isInitValue: false
 | 
						||
    format: 'yyyy/MM/dd',
 | 
						||
    min: 7,
 | 
						||
    //,max: 0
 | 
						||
    //,min: '2016-10-14'
 | 
						||
    //,max: -1
 | 
						||
    //,value: '1989年10月14日'
 | 
						||
    ready: function (date) {
 | 
						||
      console.log(date);
 | 
						||
    },
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      console.log(value, date, endDate);
 | 
						||
      //this.elem.val(111111);
 | 
						||
    },
 | 
						||
    change: function (value) {
 | 
						||
      console.log(value);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  // 开启快捷面板
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test2-1',
 | 
						||
    shortcuts: [
 | 
						||
      {
 | 
						||
        text: '昨天',
 | 
						||
        value: (function () {
 | 
						||
          var now = new Date();
 | 
						||
          now.setDate(now.getDate() - 1);
 | 
						||
          return now;
 | 
						||
        })()
 | 
						||
      },
 | 
						||
      { text: '今天', value: Date.now() },
 | 
						||
      {
 | 
						||
        text: '明天',
 | 
						||
        value: (function () {
 | 
						||
          var now = new Date();
 | 
						||
          now.setDate(now.getDate() + 1);
 | 
						||
          return now;
 | 
						||
        })()
 | 
						||
      },
 | 
						||
      {
 | 
						||
        text: '上个月',
 | 
						||
        value: (function () {
 | 
						||
          var now = new Date();
 | 
						||
          // now.setDate(now.getDate() - 1);
 | 
						||
          now.setMonth(now.getMonth() - 1);
 | 
						||
          return [now];
 | 
						||
        })()
 | 
						||
      },
 | 
						||
      {
 | 
						||
        text: '上个月的前一天',
 | 
						||
        value: (function () {
 | 
						||
          var now = new Date();
 | 
						||
          now.setMonth(now.getMonth() - 1);
 | 
						||
          now.setDate(now.getDate() - 1);
 | 
						||
          return [now];
 | 
						||
        })()
 | 
						||
      },
 | 
						||
      {
 | 
						||
        text: '某一天',
 | 
						||
        value: '2020-12-12'
 | 
						||
      }
 | 
						||
    ]
 | 
						||
  });
 | 
						||
 | 
						||
  //年选择器
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test3',
 | 
						||
    type: 'year',
 | 
						||
    //,range: true
 | 
						||
    //,trigger: 'click'
 | 
						||
    //,min:'2021-01-01'
 | 
						||
    //,max:'2022-12-31'
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      console.log(value, date, endDate);
 | 
						||
    },
 | 
						||
    change: function (value, date, endDate) {
 | 
						||
      //this.elem.val(value)
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  //年月选择器
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test4',
 | 
						||
    type: 'month',
 | 
						||
    range: true,
 | 
						||
    trigger: 'click',
 | 
						||
    min: '2022-03-01',
 | 
						||
    max: '2022-05-31',
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      console.log(value, date, endDate);
 | 
						||
    },
 | 
						||
    change: function (value, date, endDate) {
 | 
						||
      this.elem.val(value);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  //时间选择器
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test5',
 | 
						||
    type: 'time',
 | 
						||
    //,range: true
 | 
						||
    //,trigger: 'click'
 | 
						||
    min: '09:30:00',
 | 
						||
    max: '17:30:00',
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      console.log(value, date, endDate);
 | 
						||
    },
 | 
						||
    change: function (value, date, endDate) {
 | 
						||
      //this.elem.val(value)
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  //时间范围选择器
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test55',
 | 
						||
    type: 'time',
 | 
						||
    range: true,
 | 
						||
    //,trigger: 'click'
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      console.log(value, date, endDate);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  // 同时绑定多个
 | 
						||
  laydate.render({
 | 
						||
    elem: '.test-item',
 | 
						||
    trigger: 'click'
 | 
						||
  });
 | 
						||
  /*
 | 
						||
  lay('.test-item').each(function(){
 | 
						||
    laydate.render({
 | 
						||
      elem: this
 | 
						||
      ,trigger: 'click'
 | 
						||
    });
 | 
						||
  });
 | 
						||
  */
 | 
						||
 | 
						||
  //自定义重要日
 | 
						||
  var ins555 = laydate.render({
 | 
						||
    elem: '#test555',
 | 
						||
    //,calendar: true //是否开启公历重要节日
 | 
						||
    mark: {
 | 
						||
      //标记重要日子
 | 
						||
      '0-10-14': '生日', //0代表:每年
 | 
						||
      '0-0-15': '中旬',
 | 
						||
      '2017-8-20': 'v2',
 | 
						||
      '2017-8-31': '月底'
 | 
						||
    },
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      if (date.year == 2016 && date.month == 10 && date.date == 14) {
 | 
						||
        //console.log('Layui 诞生日');
 | 
						||
      }
 | 
						||
    },
 | 
						||
    change: function (value, date, endDate) {
 | 
						||
      console.log(value);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  // 标注法定节假日及补班
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test5555',
 | 
						||
    value: '2022-5-21',
 | 
						||
    holidays: [
 | 
						||
      [
 | 
						||
        '2022-1-1',
 | 
						||
        '2022-1-2',
 | 
						||
        '2022-1-3',
 | 
						||
        '2022-1-31',
 | 
						||
        '2022-2-1',
 | 
						||
        '2022-2-2',
 | 
						||
        '2022-2-3',
 | 
						||
        '2022-2-4',
 | 
						||
        '2022-2-5',
 | 
						||
        '2022-2-6',
 | 
						||
        '2022-4-3',
 | 
						||
        '2022-4-4',
 | 
						||
        '2022-4-5',
 | 
						||
        '2022-4-30',
 | 
						||
        '2022-5-1',
 | 
						||
        '2022-5-2',
 | 
						||
        '2022-5-3',
 | 
						||
        '2022-5-4',
 | 
						||
        '2022-6-3',
 | 
						||
        '2022-6-4',
 | 
						||
        '2022-6-5',
 | 
						||
        '2022-9-10',
 | 
						||
        '2022-9-11',
 | 
						||
        '2022-9-12',
 | 
						||
        '2022-10-1',
 | 
						||
        '2022-10-2',
 | 
						||
        '2022-10-3',
 | 
						||
        '2022-10-4',
 | 
						||
        '2022-10-5',
 | 
						||
        '2022-10-6',
 | 
						||
        '2022-10-7'
 | 
						||
      ],
 | 
						||
 | 
						||
      [
 | 
						||
        '2022-1-29',
 | 
						||
        '2022-1-30',
 | 
						||
        '2022-4-2',
 | 
						||
        '2022-4-24',
 | 
						||
        '2022-5-7',
 | 
						||
        '2022-10-8',
 | 
						||
        '2022-10-9'
 | 
						||
      ]
 | 
						||
    ]
 | 
						||
  });
 | 
						||
 | 
						||
  //墨绿主题
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test6-1', //指定元素
 | 
						||
    type: 'datetime',
 | 
						||
    theme: 'molv',
 | 
						||
    value: 20180115,
 | 
						||
    isInitValue: true,
 | 
						||
    lang: 'en',
 | 
						||
    //,range: true
 | 
						||
    trigger: 'click'
 | 
						||
  });
 | 
						||
 | 
						||
  //自定义背景色主题
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test6-2', //指定元素
 | 
						||
    type: 'datetime',
 | 
						||
    theme: '#393D49',
 | 
						||
    //,range: true
 | 
						||
    trigger: 'click'
 | 
						||
  });
 | 
						||
 | 
						||
  //格子主题
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test6-3', //指定元素
 | 
						||
    //,type: 'datetime'
 | 
						||
    theme: 'grid',
 | 
						||
    //,range: true
 | 
						||
    trigger: 'click'
 | 
						||
  });
 | 
						||
 | 
						||
  //其它元素触发
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test6', //指定元素
 | 
						||
    eventElem: '#test7', //绑定执行事件的元素
 | 
						||
    lang: 'en'
 | 
						||
  });
 | 
						||
 | 
						||
  //外部事件
 | 
						||
  lay('#test9').on('click', function (e) {
 | 
						||
    laydate.render({
 | 
						||
      elem: '#test8',
 | 
						||
      type: 'datetime',
 | 
						||
      show: true,
 | 
						||
      //,min: '2017-08-12 00:10:00'
 | 
						||
      //,max: '2017-08-12 23:10:10'
 | 
						||
      closeStop: '#test9', //点击 #test6 所在元素区域不关闭控件
 | 
						||
      change: function (value, date) {
 | 
						||
        console.log(value, date);
 | 
						||
      },
 | 
						||
      done: function (value, date) {
 | 
						||
        console.log(value, date);
 | 
						||
      }
 | 
						||
    });
 | 
						||
  });
 | 
						||
 | 
						||
  //直接嵌套在指定容器中
 | 
						||
  var ins10 = laydate.render({
 | 
						||
    elem: '#test10',
 | 
						||
    position: 'static',
 | 
						||
    calendar: true, //是否开启公历重要节日
 | 
						||
    mark: {
 | 
						||
      //标记重要日子
 | 
						||
      '2021-8-20': '',
 | 
						||
      '2021-8-21': ''
 | 
						||
    },
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      if (date.year == 2021 && date.month == 8 && date.date == 20) {
 | 
						||
        ins10.hint(value + ',活动日');
 | 
						||
      }
 | 
						||
    },
 | 
						||
    change: function (value, date, endDate) {
 | 
						||
      console.log(value, date);
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  laydate.render({
 | 
						||
    elem: '#test11',
 | 
						||
    position: 'static',
 | 
						||
    lang: 'en',
 | 
						||
    type: 'datetime',
 | 
						||
    calendar: true, //是否开启公历重要节日
 | 
						||
    done: function (value, date, endDate) {
 | 
						||
      //console.log(value, date, endDate);
 | 
						||
    },
 | 
						||
    change: function (value, date, endDate) {
 | 
						||
      console.log(value);
 | 
						||
    }
 | 
						||
  });
 | 
						||
});
 | 
						||
 | 
						||
</script>
 | 
						||
</body>
 | 
						||
</html>
 |