想要实现一个日历,在js基础中,需要一个date对象,date对象身上有很多丰富的属性和方法,供我们去操作日历。比如:我们可以去获取到一个时间,这个时间的星期数、月份、几号、哪一年都可以去获取到,我们还可以去修改和设置时间(某年某月某日)。这个库的底层实现,也是用date对象完成的。所以说这个datetime picker库的本质也不是特别难。但是这个组件考虑到了一些情况,它把这个组件写的非常的丰富,用起来是非常的方便的,但是这个只能在Bootstrap的3.x中使用,

    1. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
    2. integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
    3. <link rel="stylesheet" href="css/bootstrap-datetimepicker.css">
    4. <title></title>
    5. </head>
    6. <body>
    7. <!--
    8. 官网:https://www.malot.fr/bootstrap-datetimepicker/
    9. 中文翻译:https://www.bootcss.com/p/bootstrap-datetimepicker/
    10. -->
    11. <div class="container">
    12. <div class="row">
    13. <div class="col">
    14. <div class="form-group form-inline">
    15. <label for="datetime">日期:</label>
    16. <input type="text" class="form-control datetime" id="datetime">
    17. </div>
    18. </div>
    19. </div>
    20. </div>
    21. <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
    22. integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
    23. crossorigin="anonymous"></script>
    24. <script src="js/bootstrap-datetimepicker.js"></script>
    25. <script>
    26. ; (function ($) {
    27. $.fn.datetimepicker.dates['zh-CN'] = {
    28. days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
    29. daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
    30. daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
    31. months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
    32. monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
    33. today: "今天",
    34. suffix: [],
    35. meridiem: ["上午", "下午"]
    36. };
    37. }(jQuery));
    38. $('.datetime').datetimepicker({
    39. //格式化日期 在input框中展示的格式
    40. format: 'yyyy-mm-dd',
    41. format: 'yyyy-mm-dd hh:ii',
    42. format: 'yyyy-mm-ddThh:ii',
    43. format: 'yyyy-mm-dd hh:ii:ss',
    44. format: 'yyyy-mm-dd hh:ii:ssZ',Z中国时区
    45. format: 'yyyy-mm-dd hh:ii:ss P',大写P AM:十二小时制
    46. format: 'yyyy-mm-dd H:ii:ss p',小写p am:十二小时制
    47. format: 'yyyy-mm-dd H:ii:ss h'二十四小时制 mm 0
    48. format: 'yyyy-mm-dd',
    49. weekStart: 1, //一周从哪一天开始,0-6(周日-周六)
    50. /* startDate:new Date(), //能够选择到的开始日期
    51. endDate:new Date(2020,1,1), //能够选择到的结束日期 1 就是2月份*/
    52. daysOfWeekDisabled: [1, 3, 5], //一周里周几不能选择到 里面写字符串也是可以的
    53. daysOfWeekDisabled: [], //一周里周几不能选择到 里面是空,都能选择到
    54. autoclose: true, //当选择到一个日期后,是否自动关闭日期选择器
    55. startView: 0, //0或者'hour':从小时视图开始,选分
    56. startView: 1, //1或者'day':从天视图开始,选小时
    57. startView: 2, //2或者'month':从月视图开始,选天(这是默认的)
    58. startView: 3, //3或者'year':从年视图开始,选月
    59. startView: 4, //4或者'decade':从十年视图开始,选年
    60. startView: 2, //还原
    61. //日期时间选择器最低能够选择到的日期类型
    62. minView: 0, //0或者'hour':能选择到分(这是默认的)
    63. minView: 1, //1或者'day':能选择到小时
    64. minView: 2, //2或者'month':能选择到天
    65. minView: 3, //3或者'year':能选择到月
    66. minView: 4, //4或者'decade':能选择到年
    67. minView: 0, //还原
    68. //最大能够选择到的日期类型。是通过点击头部的日期来选择。演示234就够了,最大的值权限为2了
    69. maxView: 0, //0或者'hour':能选择到分
    70. maxView: 1, //1或者'day':能选择到小时
    71. maxView: 2, //2或者'month':能选择到天
    72. maxView: 3, //3或者'year':能选择到月
    73. maxView: 4, //4或者'decade':能选择到年(这是默认的)
    74. todayBtn: true, //是否显示回到今天的按钮 点击之后 就会回到今天的日期
    75. keyboardNavigation: true, //是否可以通过键盘选择日期
    76. shift + 方向键
    77. ctrl + shift + 方向键
    78. esc
    79. enter
    80. language: 'zh-CN', //语言选择 需要引入语言包
    81. minuteStep: 10, //最小分钟间隔数,默认为5
    82. pickerPosition: 'bottom-right', //日期组件显示的位置 top-right top-left bottom-left
    83. showMeridian: true, //在日期界面上是否显示上下午 默认是false
    84. });
    85. //方法
    86. /* $('.datetime').datetimepicker('remove'); //移除日期时间选择器组件
    87. $('.datetime').datetimepicker('show'); //显示日期时间选择器组件
    88. setTimeout(function(){
    89. $('.datetime').datetimepicker('hide'); //隐藏日期时间选择器组件
    90. },5000); */
    91. $('.datetime').datetimepicker('setStartDate', '2019-10-01');//设置日期选择器的起始日期
    92. $('.datetime').datetimepicker('setEndDate', '2020-10-01');//设置日期选择器的结束日期
    93. $('.datetime').datetimepicker('setDaysOfWeekDisabled', [0, 6]);//设置不可选的星期 周日 周六不可选
    94. //事件
    95. $('.datetime').datetimepicker()
    96. //日期选择器显示事件
    97. .on('show', function () {
    98. console.log('日期选择器组件显示了');
    99. })
    100. //日期选择器隐藏事件
    101. .on('hide', function () {
    102. console.log('日期选择器组件隐藏了');
    103. })
    104. //日期变动事件
    105. .on('changeDate', function () {
    106. console.log('日期变动了');
    107. })
    108. //年份变动事件
    109. .on('changeYear', function () {
    110. console.log('年份变动了')
    111. })
    112. //月份变动事件
    113. .on('changeMonth', function () {
    114. console.log('月份变动了')
    115. })
    116. //超出选择日期范围事件
    117. .on('outOfRange', function () {
    118. console.log('你选择的日期超出范围了')
    119. })
    120. </script>
    121. </body>