JS實現(xiàn)時間選擇器
更新時間:2022年07月11日 16:36:48 作者:Jie_1997
這篇文章主要為大家詳細介紹了JS實現(xiàn)時間選擇器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JS實現(xiàn)時間選擇器的具體代碼,供大家參考,具體內(nèi)容如下
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 = '月份格式不正確,請重新輸入!' ? } ? return array; } function getNewDateArry() { ? // 當(dāng)前時間的處理 ? 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) { ? // 返回默認(rèn)顯示的數(shù)組和聯(lián)動數(shù)組的聲明 ? var dateTime = [], dateTimeArray = [[], [], [], [], [], []]; ? var start = startYear || 1978; ? var end = endYear || 2100; ? // 默認(rèn)開始顯示數(shù)據(jù) ? var defaultDate = date ? [...date.split(' ')[0].split('-'), ...date.split(' ')[1].split(':')] : getNewDateArry(); ? // 處理聯(lián)動列表數(shù)據(jù) ? /*年月日 時分秒*/ ? 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 ? } }
實現(xiàn)實例
<!DOCTYPE html> <html> <head> ? ? <meta name="viewport" content="width=device-width" /> ? ? <title>Index</title> ? ?? ? ?<!-- 引用dateTimePicker.js --> ? ? <script src="~/Scripts/dateTime.js"></script> ? ?? ? ? <script> ? ? ? ? window.onload = function () { ? ? ? ? ? ? var stryear = 2000;?? ?//設(shè)置開始時間2000年 ? ? ? ? ? ? ?var endyear = 2060;?? ?//設(shè)置結(jié)束時間2060年 ? ? ? ? ? ? var date = dateTimePicker(stryear,endyear);?? ?//調(diào)用dateTimePicker方法獲取時間(開始時間,結(jié)束時間) ?? ??? ??? ?//定義日期時間 ? ? ? ? ? ? var year = date.dateTimeArray[0];?? ?//年 ? ? ? ? ? ? var month = date.dateTimeArray[1];//月 ? ? ? ? ? ? var day = date.dateTimeArray[2];//日 ? ? ? ? ? ? var time = date.dateTimeArray[3];//時 ? ? ? ? ? ? var minute = date.dateTimeArray[4];//分 ? ? ? ? ? ? var second = date.dateTimeArray[5];//秒 ?? ??? ??? ?//將日期時間放入對應(yīng)的select中 ? ? ? ? ? ? var yearInner = ""; ? ? ? ? ? ? var monthInner = ""; ? ? ? ? ? ? var dayInner = ""; ? ? ? ? ? ? var timeInner = ""; ? ? ? ? ? ? var minuteInner = ""; ? ? ? ? ? ? var secondInner = ""; ? ? ? ? ? ? //年 ? ? ? ? ? ? for (var i = 0; i < year.length; i++) { ? ? ? ? ? ? ? ? yearInner += '<option>' + year[i] + '</option>' ? ? ? ? ? ? } ? ? ? ? ? ? document.getElementById("yearSelect").innerHTML = yearInner; ? ? ? ? ? ? //月 ? ? ? ? ? ? for (var i = 0; i < month.length; i++) { ? ? ? ? ? ? ? ? monthInner += '<option>' + month[i] + '</option>' ? ? ? ? ? ? } ? ? ? ? ? ? document.getElementById("monthSelect").innerHTML = monthInner; ? ? ? ? ? ? //日 ? ? ? ? ? ? for (var i = 0; i < day.length; i++) { ? ? ? ? ? ? ? ? dayInner += '<option>' + day[i] + '</option>' ? ? ? ? ? ? } ? ? ? ? ? ? document.getElementById("daySelect").innerHTML = dayInner; ? ? ? ? ? ? //時 ? ? ? ? ? ? for (var i = 0; i < time.length; i++) { ? ? ? ? ? ? ? ? timeInner += '<option>' + time[i] + '</option>' ? ? ? ? ? ? } ? ? ? ? ? ? document.getElementById("timeSelect").innerHTML = timeInner; ? ? ? ? ? ? //分 ? ? ? ? ? ? for (var i = 0; i < minute.length; i++) { ? ? ? ? ? ? ? ? minuteInner += '<option>' + minute[i] + '</option>' ? ? ? ? ? ? } ? ? ? ? ? ? document.getElementById("minuteSelect").innerHTML = minuteInner; ? ? ? ? ? ? //秒 ? ? ? ? ? ? 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>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js對象轉(zhuǎn)json數(shù)組的簡單實現(xiàn)案例
本篇文章主要是對js對象轉(zhuǎn)json數(shù)組的簡單實現(xiàn)案例進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02Javascript連接多個數(shù)組不用concat來解決
這篇文章主要介紹了不用concat解決Javascript連接多個數(shù)組,需要的朋友可以參考下2014-03-03Javascript使用uploadify來實現(xiàn)多文件上傳
本篇文章主要介紹了Javascript使用uploadify來實現(xiàn)多文件上傳,具有一定的參考價值,有需要的可以了解一下。2016-11-11javascript面向?qū)ο蟪绦蛟O(shè)計(一)
這篇文章主要介紹了javascript面向?qū)ο蟪绦蛟O(shè)計,分享給大家一段代碼,注釋里講解的非常詳細,有助于我們理解面向?qū)ο?,這里推薦給大家。2015-01-01