[前端] JS实现时间选择器

3016 0
王子 2022-10-21 15:41:22 | 显示全部楼层 |阅读模式
本文实例为大家分享了JS实现时间选择器的具体代码,供大家参考,具体内容如下
dateTime.js
  1. function withData(param) {
  2. return param < 10 ? '0' + param : '' + param;
  3. }
  4. function getLoopArray(start, end) {
  5. var start = start || 0;
  6. var end = end || 1;
  7. var array = [];
  8. for (var i = start; i <= end; i++) {
  9.   array.push(withData(i));
  10. }
  11. return array;
  12. }
  13. function getMonthDay(year, month) {
  14. var flag = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0), array = null;
  15. switch (month) {
  16.   case '01':
  17.   case '03':
  18.   case '05':
  19.   case '07':
  20.   case '08':
  21.   case '10':
  22.   case '12':
  23.    array = getLoopArray(1, 31)
  24.    break;
  25.   case '04':
  26.   case '06':
  27.   case '09':
  28.   case '11':
  29.    array = getLoopArray(1, 30)
  30.    break;
  31.   case '02':
  32.    array = flag ? getLoopArray(1, 29) : getLoopArray(1, 28)
  33.    break;
  34.   default:
  35.    array = '月份格式不正确,请重新输入!'
  36. }
  37. return array;
  38. }
  39. function getNewDateArry() {
  40. // 当前时间的处理
  41. var newDate = new Date();
  42. var year = withData(newDate.getFullYear()),
  43.   mont = withData(newDate.getMonth() + 1),
  44.   date = withData(newDate.getDate()),
  45.   hour = withData(newDate.getHours()),
  46.   minu = withData(newDate.getMinutes()),
  47.   seco = withData(newDate.getSeconds());
  48. return [year, mont, date, hour, minu, seco];
  49. }
  50. function dateTimePicker(startYear, endYear, date) {
  51. // 返回默认显示的数组和联动数组的声明
  52. var dateTime = [], dateTimeArray = [[], [], [], [], [], []];
  53. var start = startYear || 1978;
  54. var end = endYear || 2100;
  55. // 默认开始显示数据
  56. var defaultDate = date ? ...date.split(' ')[0].split('-'), ...date.split(' ')[1].split(':')] : getNewDateArry();
  57. // 处理联动列表数据
  58. /*年月日 时分秒*/
  59. dateTimeArray[0] = getLoopArray(start, end);
  60. dateTimeArray[1] = getLoopArray(1, 12);
  61. dateTimeArray[2] = getMonthDay(defaultDate[0], defaultDate[1]);
  62. dateTimeArray[3] = getLoopArray(0, 23);
  63. dateTimeArray[4] = getLoopArray(0, 59);
  64. dateTimeArray[5] = getLoopArray(0, 59);
  65. dateTimeArray.forEach((current, index) => {
  66.   dateTime.push(current.indexOf(defaultDate[index]));
  67. }); return {
  68.   dateTimeArray: dateTimeArray,
  69.   dateTime: dateTime
  70. }
  71. }
复制代码
实现实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <meta name="viewport" content="width=device-width" />
  5.   <title>Index</title>
  6. <!-- 引用dateTimePicker.js -->
  7.   <script src="~/Scripts/dateTime.js"></script>
  8.   <script>
  9.     window.onload = function () {
  10.       var stryear = 2000; //设置开始时间2000年
  11.       var endyear = 2060; //设置结束时间2060年
  12.       var date = dateTimePicker(stryear,endyear); //调用dateTimePicker方法获取时间(开始时间,结束时间)
  13.    //定义日期时间
  14.       var year = date.dateTimeArray[0]; //年
  15.       var month = date.dateTimeArray[1];//月
  16.       var day = date.dateTimeArray[2];//日
  17.       var time = date.dateTimeArray[3];//时
  18.       var minute = date.dateTimeArray[4];//分
  19.       var second = date.dateTimeArray[5];//秒
  20.    //将日期时间放入对应的select中
  21.       var yearInner = "";
  22.       var monthInner = "";
  23.       var dayInner = "";
  24.       var timeInner = "";
  25.       var minuteInner = "";
  26.       var secondInner = "";
  27.       //年
  28.       for (var i = 0; i < year.length; i++) {
  29.         yearInner += '<option>' + year[i] + '</option>'
  30.       }
  31.       document.getElementById("yearSelect").innerHTML = yearInner;
  32.       //月
  33.       for (var i = 0; i < month.length; i++) {
  34.         monthInner += '<option>' + month[i] + '</option>'
  35.       }
  36.       document.getElementById("monthSelect").innerHTML = monthInner;
  37.       //日
  38.       for (var i = 0; i < day.length; i++) {
  39.         dayInner += '<option>' + day[i] + '</option>'
  40.       }
  41.       document.getElementById("daySelect").innerHTML = dayInner;
  42.       //时
  43.       for (var i = 0; i < time.length; i++) {
  44.         timeInner += '<option>' + time[i] + '</option>'
  45.       }
  46.       document.getElementById("timeSelect").innerHTML = timeInner;
  47.       //分
  48.       for (var i = 0; i < minute.length; i++) {
  49.         minuteInner += '<option>' + minute[i] + '</option>'
  50.       }
  51.       document.getElementById("minuteSelect").innerHTML = minuteInner;
  52.       //秒
  53.       for (var i = 0; i < second.length; i++) {
  54.         secondInner += '<option>' + second[i] + '</option>'
  55.       }
  56.       document.getElementById("secondSelect").innerHTML = secondInner;
  57.     }
  58.   </script>
  59. </head>
  60. <body>
  61. <div>
  62.    <select id="yearSelect"></select>
  63.    <span>-</span>
  64.    <select id="monthSelect"></select>
  65.    <span>-</span>
  66.    <select id="daySelect"></select>
  67.    <br />
  68.    <select id="timeSelect"></select>
  69.    <span>:</span>
  70.    <select id="minuteSelect"></select>
  71.    <span>:</span>
  72.    <select id="secondSelect"></select>
  73. </div>
  74. </body>
  75. </html>
复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中国红客联盟。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行