https://www.layui.com/laydate/说明:下载 — laydate文件copy —放在你的项目文件下 — 引入laydate.js(它是采用原生的js去写的,不依赖于任何第三方的库的,兼容到ie8往上)
    https://www.layui.com/doc/中的内置模块—>日期与时间选择

    1. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
    2. integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    3. <title></title>
    4. </head>
    5. <body>
    6. <!--
    7. https://www.layui.com/laydate/
    8. -->
    9. <div class="container">
    10. <div class="row mt-5">
    11. <div class="col">
    12. <div class="form-group form-inline"> form-inline横着排列
    13. <label for="date">日期:</label>
    14. <div type="text" class="form-control w-50" placeholder="请选择日期" id="date"></div>m-50百分之50
    15. </div>
    16. </div>
    17. </div>
    18. </div>
    19. <script src="laydate/laydate.js"></script>
    20. <script>
    21. var layDemo=laydate.render({ //初始化方法
    22. //绑定元素
    23. elem: '#date', 或者dom对象:document.getElementById('date')
    24. //控件选择类型
    25. type: 'year',只提供年列表的选择
    26. type: 'month', 年月
    27. type: 'date', 年月日
    28. type: 'time', 时分秒
    29. type: 'datetime', 年月日时分秒
    30. //开启左右面板范围选择
    31. //range:'*'字符串表示分隔符,表示开启范围,中间用这个字符串来做分隔符
    32. 默认值是false
    33. true的时候,就是开启两个面板,显示两个日期选择固定范围的日期 input框中就是显示两个范围的日期
    34. 可以通过type相结合进行
    35. //自定义格式
    36. format: 'yyyy-MM-dd HH:mm:ss',
    37. format: 'yyyy年MM月dd日 HH时mm分ss秒',
    38. format: 'yyyyMMdd',
    39. format: 'dd/MM/yyyy',
    40. format: 'yyyy年M月',
    41. format: 'M月d日',
    42. format: '北京时间:HH点mm分',
    43. format: 'yyyy年的M月某天晚上,大概H点',
    44. format: '亲,还记得yyyy年的M月d号那一天么?',
    45. format: 'yyyy-MM-dd',
    46. //初始值
    47. /* value:'2008-08-08', 这个不OK
    48. value:new Date(2008,7,8),
    49. isInitValue :false, 意义不大*/
    50. //最小/大范围内的日期时间值 字符串 || 数字
    51. /* min: '2019-1-1',
    52. max: '2019-12-31',
    53. min: '2019-12-11 12:30:00',
    54. max: '2019-12-18 12:30:00',时分秒必须用冒号:
    55. min: -7, 左一周
    56. max: 7, 右一周
    57. min: '09:30:00', 定义的时间,就是默认的是今天的日期
    58. max: '17:30:00', */
    59. //自定义弹出控件的事件
    60. trigger :'focus', 获取到input焦点的时候这个提起框就弹出来了
    61. 如果绑定的时间不是input,那么默认的事件是click
    62. //默认显示
    63. show:false,
    64. //定位方式
    65. position:'abolute','fixed':就是应用到的是弹出层,
    66. 'static':它可以把我们的组件放在一个对应的一个元素当中。用的不多
    67. //层叠顺序
    68. zIndex:66666666,
    69. //是否显示底部栏
    70. showBottom :true,
    71. //工具按钮
    72. btns :['now', 'clear', 'confirm'],里面可以删除,可以不填,可以都填 就是下方的按钮是否显示
    73. //语言
    74. lang:'cn', 'en'英文
    75. //主题
    76. theme :'default',默认值 绿色
    77. theme :'molv',墨绿色
    78. theme :'#f00',颜色值 16进制
    79. theme :'grid',方格主题
    80. theme :'kaivon', 添加一个class laydate-theme-kaivon
    81. // 是否显示公历节日
    82. calendar:true,里面的中国传统的节日
    83. //标注重要日子
    84. mark :{
    85. '0-5-3':'生日', 53 生日
    86. '0-9-1':'开学', 91 开学
    87. '0-0-10':'工资', 每月10工资
    88. '2019-12-6':'入职',这个2019126号入职
    89. },
    90. //方法
    91. //控件初始打开的触发这个回调
    92. ready:function(date){
    93. console.log(date);当前日期年月日
    94. },
    95. //日期时间被切换后的回调
    96. change:function(value,date,endDate){
    97. console.log(value);生成的值 就是显示的字符串 选择到的时间
    98. console.log(date);日期的时间对象 打开range 开始时间对象
    99. console.log(endDate);结束的日期的时间对象 打开range 结束事件对象
    100. layDemo.hint(value); 就是说实例的继承对象,我们自己声明的变量(对象继承了)的方法
    101. },
    102. //控件选择完毕后的回调
    103. done:function(value,date,endDate){当我们点击确定的时候这个控件就会触发
    104. console.log(value);
    105. console.log(date);
    106. console.log(endDate);
    107. },
    108. });
    109. console.log(layDemo);
    110. var endDay=laydate.getEndDate();取到某一个月的最后一天 不给值的话就是默认today的日期
    111. var endDay=laydate.getEndDate(2,2035);
    112. 获取这个月的总共天数的方法,我们平时就可以通过setdate()设置一个日期对象,
    113. 我们把这个对象设置成一个setDate2019132),这个是可以执行的,这时候会变成下一个月的第一天,
    114. setDate2019,1,0)这时候天数是没有零值的,会设置成上一个月的最后一天,这时候就出现最后一天了,
    115. 我们通过getDate()就可以取到那一个月的天数了。我们平时方法的原理。这里面也是有一个坑就是月份的问题。
    116. console.log(endDay);
    117. </script>