JavaScript日期選擇功能示例
本文實(shí)例講述了JavaScript日期選擇功能。分享給大家供大家參考,具體如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<title>javascript日期選擇</title>
<style type="text/css">
option{
width:150px;
}
</style>
</head>
<body>
<!--<input type="hidden" value="window.location.href" />-->
<br />
<div id="dateOp">
<select id="selectYear" onchange="getDay()"></select>年
<select id="selectMonth" onchange="getDay()"></select>月
<select id="selectDay"></select>日
<input type="button" value="getdate" />
</div>
<script type="text/javascript">
//或得當(dāng)前年月日
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var startYear = 2000;
var endYear = 2050;
var button = document.getElementsByTagName("input")[0];
//得到三個(gè)select項(xiàng)
var selectYearElement = document.getElementById("selectYear");
var selectMonthElement = document.getElementById("selectMonth");
var selectDayElement = document.getElementById("selectDay");
//selectYearElement.onchange = getDay();
//selectMonthElement.onchange = getDay();
//selectYearElement.addEventListener
getYear();
getMonth();
getDay();
//年份函數(shù)
function getYear() {
for (var i = startYear; i <= endYear; i++) {
var opYearElement = document.createElement("option");
var textElement = document.createTextNode(i);
opYearElement.appendChild(textElement);
opYearElement.value = i;
selectYearElement.appendChild(opYearElement);
}
//設(shè)置默認(rèn)年份的值
selectYearElement.selectedIndex = year - startYear;
}
//月份函數(shù)
function getMonth() {
for (var i = 1; i <= 12; i++) {
var opMonthElement = document.createElement("option");
textMonth = document.createTextNode(i);
opMonthElement.appendChild(textMonth);
opMonthElement.value = i;
selectMonthElement.appendChild(opMonthElement);
}
//設(shè)置默認(rèn)年份的值
selectMonthElement.selectedIndex = month - 1;
}
//日期函數(shù)
function getDay() {
var getSelectedYear = selectYearElement.selectedIndex + startYear;
var getSelectedMonth = selectMonthElement.selectedIndex + 1;
var flag = 0;
var selectDayElement = document.getElementById("selectDay");
if (selectDayElement.hasChildNodes()) {
var optionElements = selectDayElement.getElementsByTagName("option");
for (var i = 0; i < optionElements.length; i++) {
selectDayElement.removeChild(optionElements[0]);
//不知道為什么必須得自減一
i--;
}
}
else {
}
//得到閏年
if ((getSelectedYear % 4 == 0 && getSelectedYear % 100 != 0) || getSelectedYear % 400 == 0) {//得到閏年的年號(hào)
//alert("閏年");
//得到閏年大月份除二月以外
if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 1 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 0)) {//得到大月
setDay(flag = 31);
}
else if (getSelectedMonth <= 7 && getSelectedMonth == 2) {
setDay(flag = 29);
}
else if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 0 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 1)) {//得到小月份除二月以外
setDay(flag = 30);
}
}
//非閏年
else {
//alert("平年");
//得到平年大月份除二月以外
if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 1 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 0)) {//得到大月
setDay(flag = 31);
}
else if (getSelectedMonth <= 7 && getSelectedMonth == 2) {
setDay(flag = 28);
}
else if ((getSelectedMonth <= 7 && getSelectedMonth % 2 == 0 && getSelectedMonth != 2) || (getSelectedMonth >= 8 && getSelectedMonth % 2 == 1)) {//得到小月份除二月以外
setDay(flag = 30);
}
}
}
//設(shè)置默認(rèn)年份的值
selectDayElement.selectedIndex = day - 1;
function setDay(dayLength) {
for (var i = 1; i <= dayLength; i++) {
var opDayElement = document.createElement("option");
textMonth = document.createTextNode(i);
opDayElement.appendChild(textMonth);
opDayElement.value = i;
//alert(i);
selectDayElement.appendChild(opDayElement);
}
}
button.onclick = function () {
var getSelectedYear = selectYearElement.selectedIndex + startYear;
var getSelectedMonth = selectMonthElement.selectedIndex + 1;
var getSelectedDay = selectDayElement.selectedIndex + 1;
alert("當(dāng)前選中的日期是:" + getSelectedYear + "年" + getSelectedMonth + "月" + getSelectedDay + "日")
}
//getDay
</script>
</body>
</html>
運(yùn)行效果圖如下:

PS:這里再為大家提供幾款日期與日歷相關(guān)在線(xiàn)工具供大家參考使用:
在線(xiàn)萬(wàn)年歷日歷:
http://tools.jb51.net/bianmin/wannianli
網(wǎng)頁(yè)萬(wàn)年歷日歷:
http://tools.jb51.net/bianmin/webwannianli
在線(xiàn)陰歷/陽(yáng)歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《JavaScript時(shí)間與日期操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js 格式化時(shí)間日期函數(shù)小結(jié)
- 日期 時(shí)間js控件
- js data日期初始化的5種方法
- JS 日期比較大小的簡(jiǎn)單實(shí)例
- js時(shí)間戳格式化成日期格式的多種方法
- js用Date對(duì)象的setDate()函數(shù)對(duì)日期進(jìn)行加減操作
- js獲取日期:昨天今天和明天、后天
- js時(shí)間戳轉(zhuǎn)為日期格式的方法
- js中的時(shí)間轉(zhuǎn)換—毫秒轉(zhuǎn)換成日期時(shí)間的示例代碼
- JS 顯示當(dāng)前日期與時(shí)間的代碼
- js:日期正則表達(dá)式及檢測(cè)
- JS 日期操作代碼,獲取當(dāng)前日期,加一天,減一天
相關(guān)文章
JavaScript實(shí)現(xiàn)圖片偽異步上傳過(guò)程解析
這篇文章主要介紹了javascript實(shí)現(xiàn)圖片偽異步上傳過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
JS判斷兩個(gè)對(duì)象內(nèi)容是否相等的方法示例
這篇文章主要介紹了JS判斷兩個(gè)對(duì)象內(nèi)容是否相等的方法,結(jié)合具體實(shí)例形式分析了javascript針對(duì)字符串、數(shù)組及對(duì)象的相關(guān)判斷技巧,需要的朋友可以參考下2017-04-04
JavaScript常見(jiàn)函數(shù)類(lèi)型和用途實(shí)現(xiàn)場(chǎng)景分析
在JavaScript中,除了惰性函數(shù)和防抖函數(shù)外,還有許多其他有用的函數(shù)模式和功能函數(shù),以下是一些常見(jiàn)的函數(shù)類(lèi)型和用途,感興趣的朋友一起看看吧2024-12-12
解決LayUI數(shù)據(jù)表格復(fù)選框不居中顯示的問(wèn)題
今天小編就為大家分享一篇解決LayUI數(shù)據(jù)表格復(fù)選框不居中顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
詳解JavaScript如何優(yōu)雅地實(shí)現(xiàn)創(chuàng)建多維數(shù)組
多維數(shù)組的意思是指三維或者三維以上的數(shù)組。這篇文章將通過(guò)示例為大家詳細(xì)講解一下JavaScript如何實(shí)現(xiàn)優(yōu)雅地創(chuàng)建多維數(shù)組,需要的可以參考一下2022-07-07
knockoutjs模板實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)列表
這篇文章主要介紹了knockoutjs模板實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)列表的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-07-07
用IE重起計(jì)算機(jī)或者關(guān)機(jī)的示例代碼
本篇文章主要是對(duì)用IE重起計(jì)算機(jī)或者關(guān)機(jī)的實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03

