Руководство по реализации временных селекторов в JavaScript.

This article mainly introduces the JS implementation of time selector in detail. The sample code in the article is very detailed and has certain reference value. Interested friends can refer to it.

В примере в этой статье используется специальный код JS для реализации селектора времени для справки. Конкретное содержание выглядит следующим образом:

dateTime.js

function withData(param) {
  return param < 10 ? '0' + param : '' + param;
}
function getLoopArray(start, end) {
  var start = start || 0;
  var end = end || 1;
  var array = [];
  for (var i = start; i <= end; i++) {
    array.push(withData(i));
  }
  return array;
}
function getMonthDay(year, month) {
  var flag = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0), array = null;
switch (month) {
    case '01':
    case '03':
    case '05':
    case '07':
    case '08':
    case '10':
    case '12':
      array = getLoopArray(1, 31)
      break;
    case '04':
    case '06':
    case '09':
    case '11':
      array = getLoopArray(1, 30)
      break;
    case '02':
      array = flag ? getLoopArray(1, 29) : getLoopArray(1, 28)
      break;
    default:
      array = 'The month format is incorrect, please re-enter!'
  }
  return array;
}
function getNewDateArry() {
  // Processing of the current time
  var newDate = new Date();
  var year = withData(newDate.getFullYear()),
    mont = withData(newDate.getMonth() + 1),
    date = withData(newDate.getDate()),
    hour = withData(newDate.getHours()),
    minu = withData(newDate.getMinutes()),
    seco = withData(newDate.getSeconds());
return [year, mont, date, hour, minu, seco];
}
function dateTimePicker(startYear, endYear, date) {
  // Returns the declaration of the default displayed array and linked array
  var dateTime = [], dateTimeArray = [[], [], [], [], [], []];
  var start = startYear || 1978;
  var end = endYear || 2100;
  // Start displaying data by default
  var defaultDate = date ? [...date.split(' ')[0].split('-'), ...date.split(' ')[1].split(':')] : getNewDateArry();
  // Process linkage list data
  /*year month day hours minutes seconds*/
  dateTimeArray[0] = getLoopArray(start, end);
  dateTimeArray[1] = getLoopArray(1, 12);
  dateTimeArray[2] = getMonthDay(defaultDate[0], defaultDate[1]);
  dateTimeArray[3] = getLoopArray(0, 23);
  dateTimeArray[4] = getLoopArray(0, 59);
  dateTimeArray[5] = getLoopArray(0, 59);
dateTimeArray.forEach((current, index) => {
    dateTime.push(current.indexOf(defaultDate[index]));
  });  return {
    dateTimeArray: dateTimeArray,
    dateTime: dateTime
  }
}

Пример реализации

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    
   <!-- quote dateTimePicker.js -->
    <script src="~/Scripts/dateTime.js"></script>
    
    <script>
        window.onload = function () {
            var stryear = 2000;    //set start time 2000
             var endyear = 2060;    //Set end time 2060
            var date = dateTimePicker(stryear,endyear);    //Call the dateTimePicker method to get the time (start time, end time)
//define datetime
            var year = date.dateTimeArray[0];    //year
            var month = date.dateTimeArray[1];//month
            var day = date.dateTimeArray[2];//day
            var time = date.dateTimeArray[3];//time
            var minute = date.dateTimeArray[4];//minute
            var second = date.dateTimeArray[5];//second
//Put the date and time into the corresponding select
            var yearInner = "";
            var monthInner = "";
            var dayInner = "";
            var timeInner = "";
            var minuteInner = "";
            var secondInner = "";
            //year
            for (var i = 0; i < year.length; i++) {
                yearInner += '<option>' + year[i] + '</option>'
            }
            document.getElementById("yearSelect").innerHTML = yearInner;
            //month
            for (var i = 0; i < month.length; i++) {
                monthInner += '<option>' + month[i] + '</option>'
            }
            document.getElementById("monthSelect").innerHTML = monthInner;
            //day
            for (var i = 0; i < day.length; i++) {
                dayInner += '<option>' + day[i] + '</option>'
            }
            document.getElementById("daySelect").innerHTML = dayInner;
            //time
            for (var i = 0; i < time.length; i++) {
                timeInner += '<option>' + time[i] + '</option>'
            }
            document.getElementById("timeSelect").innerHTML = timeInner;
            //minute
            for (var i = 0; i < minute.length; i++) {
                minuteInner += '<option>' + minute[i] + '</option>'
            }
            document.getElementById("minuteSelect").innerHTML = minuteInner;
            //second
            for (var i = 0; i < second.length; i++) {
                secondInner += '<option>' + second[i] + '</option>'
            }
            document.getElementById("secondSelect").innerHTML = secondInner;
        }
    </script>
</head>
<body>
   <div>
      <select id="yearSelect"></select>
       <span>-</span>
       <select id="monthSelect"></select>
       <span>-</span>
       <select id="daySelect"></select>
       <br />
       <select id="timeSelect"></select>
       <span>:</span>
       <select id="minuteSelect"></select>
       <span>:</span>
       <select id="secondSelect"></select>
   </div>
</body>
</html>

Выше приведено все содержание этой статьи, надеюсь, она будет полезна для вашего изучения.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord . Заинтересованы в хакинге роста? Ознакомьтесь с разделом Схема.