JS實(shí)現(xiàn)時(shí)間選擇器
本文實(shí)例為大家分享了JS實(shí)現(xiàn)時(shí)間選擇器的具體代碼,供大家參考,具體內(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)前時(shí)間的處理 ? 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ù) ? /*年月日 時(shí)分秒*/ ? 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 ? } }
實(shí)現(xiàn)實(shí)例
<!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è)置開始時(shí)間2000年 ? ? ? ? ? ? ?var endyear = 2060;?? ?//設(shè)置結(jié)束時(shí)間2060年 ? ? ? ? ? ? var date = dateTimePicker(stryear,endyear);?? ?//調(diào)用dateTimePicker方法獲取時(shí)間(開始時(shí)間,結(jié)束時(shí)間) ?? ??? ??? ?//定義日期時(shí)間 ? ? ? ? ? ? var year = date.dateTimeArray[0];?? ?//年 ? ? ? ? ? ? var month = date.dateTimeArray[1];//月 ? ? ? ? ? ? var day = date.dateTimeArray[2];//日 ? ? ? ? ? ? var time = date.dateTimeArray[3];//時(shí) ? ? ? ? ? ? var minute = date.dateTimeArray[4];//分 ? ? ? ? ? ? var second = date.dateTimeArray[5];//秒 ?? ??? ??? ?//將日期時(shí)間放入對應(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; ? ? ? ? ? ? //時(shí) ? ? ? ? ? ? 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ù)組的簡單實(shí)現(xiàn)案例
本篇文章主要是對js對象轉(zhuǎn)json數(shù)組的簡單實(shí)現(xiàn)案例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02Javascript連接多個(gè)數(shù)組不用concat來解決
這篇文章主要介紹了不用concat解決Javascript連接多個(gè)數(shù)組,需要的朋友可以參考下2014-03-03javascript 二進(jìn)制運(yùn)算技巧解析
javascript 中的二進(jìn)制運(yùn)算的一些技巧,曬出來和你們分享一下,希望可以幫助你們2012-11-11Javascript使用uploadify來實(shí)現(xiàn)多文件上傳
本篇文章主要介紹了Javascript使用uploadify來實(shí)現(xiàn)多文件上傳,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11wow.js實(shí)現(xiàn)炫酷的頁面滾動伴隨動畫示例詳解
這篇文章主要為大家介紹了wow.js實(shí)現(xiàn)炫酷的頁面滾動伴隨動畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02javascript面向?qū)ο蟪绦蛟O(shè)計(jì)(一)
這篇文章主要介紹了javascript面向?qū)ο蟪绦蛟O(shè)計(jì),分享給大家一段代碼,注釋里講解的非常詳細(xì),有助于我們理解面向?qū)ο?,這里推薦給大家。2015-01-01微信小程序?qū)崿F(xiàn)表單驗(yàn)證提交功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)表單驗(yàn)證提交功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07