首页 > 其他 > 详细

日期的插件

时间:2019-02-21 19:32:07      阅读:222      评论:0      收藏:0      [点我收藏+]

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta charset="UTF-8"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
<title>JS年月日三级联动下拉框日期选择代码</title>
</head>

<body>

<form name="reg_testdate">
<select name="YYYY" onChange="YYYYDD(this.value)">
<option value="">请选择 年</option>
</select>
<select name="MM" onChange="MMDD(this.value)">
<option value="">选择 月</option>
</select>
<select name="DD" onChange="DDD(this.value)">
<option value="">选择 日</option>
</select>
</form>

<script language="JavaScript">
var changeDD = 1;//->一个全局变量
function YYYYMMDDstart() {
var YYYYvalue = document.reg_testdate.YYYY.options[document.reg_testdate.YYYY.selectedIndex].value;
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
//先给年下拉框赋内容
var y = new Date().getFullYear();
for (var i = (y - 47); i < (y + 21); i++) //以今年为准,前30年,后30年
document.reg_testdate.YYYY.options.add(new Option(" " + i + " 年", i));
//赋月份的下拉框
for (var i = 1; i < 13; i++)
document.reg_testdate.MM.options.add(new Option(" " + i + " 月", i));
document.reg_testdate.YYYY.value = y;
document.reg_testdate.MM.value = new Date().getMonth() + 1;
var n = MonHead[new Date().getMonth()];
if (new Date().getMonth() == 1 && IsPinYear(YYYYvalue)) n++;
writeDay(n); //赋日期下拉框
//->赋值给日,为当天日期
// document.reg_testdate.DD.value = new Date().getDate();
}
if (document.attachEvent)
window.attachEvent("onload", YYYYMMDDstart);
else
window.addEventListener(‘load‘, YYYYMMDDstart, false);

function YYYYDD(str) //年发生变化时日期发生变化(主要是判断闰平年)
{
var MMvalue = document.reg_testdate.MM.options[document.reg_testdate.MM.selectedIndex].value;
if (MMvalue == "") {
// var e = document.reg_testdate.DD;
optionsClear(e);
return;
}
var n = MonHead[MMvalue - 1];
if (MMvalue == 2 && IsPinYear(str)) n++;
writeDay(n)
}

function MMDD(str) //月发生变化时日期联动
{
var YYYYvalue = document.reg_testdate.YYYY.options[document.reg_testdate.YYYY.selectedIndex].value;
if (YYYYvalue == "") {
var e = document.reg_testdate.DD;
optionsClear(e);
return;
}
var n = MonHead[str - 1];
if (str == 2 && IsPinYear(YYYYvalue)) n++;
writeDay(n)
}

function writeDay(n) //据条件写日期的下拉框
{
var e = document.reg_testdate.DD;
optionsClear(e);
for (var i = 1; i < (n + 1); i++)
{
e.options.add(new Option(" " + i + " 日", i));//日
if(i == changeDD){
e.options[i].selected = true; //->保持选中状态
}
}
console.log(i);
console.log(changeDD);
}

function IsPinYear(year) //判断是否闰平年
{
return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0));
}

function optionsClear(e) {
e.options.length = 1;
}
//->随时监听日的改变
function DDD(str){
changeDD = str;
}
</script>
</body>

</html>

 

日期插件的原生js:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta charset="UTF-8"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
<title>JS年月日三级联动下拉框日期选择代码</title>
<script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
</head>

<body>

<div class="pd-birthday">
<div class="pd-real-text fl">生日</div>
<select id="birthdayYear"></select>
<select id="birthdayMonth"></select>
<select id="birthdayDay"></select>
</div>

<script language="JavaScript">

$(function () {
//获取时间上下文
var date = new Date();
//获取年
var currentYear = date.getFullYear();//获取当前的时间

//遍历year,追加option
for (var y = currentYear - 100; y <= currentYear; y++) { //在id为year的selector附加option选项
var newYear = $("#birthdayYear");
newYear.append("<option value=\"" + y + "\">" + y + "</option>"); //append函数附加html到元素结尾处
}

//遍历12个月,追加option
for (var m = 1; m <= 12; m++) {
//获取月
var newMonth = $("#birthdayMonth");
newMonth.append("<option value=‘" + m + "‘>" + m + "</option>");
}

//天数的追加
getDay();
var month = document.querySelector("#birthdayMonth");
month.addEventListener("click", function () {//监听是否有点击事件
getDay();
}, false)

function getDay() {
var yearVal = $("#birthdayYear").val();
var monthVal = $("#birthdayMonth").val();
var days;
if (monthVal == 1 || monthVal == 3 || monthVal == 5 || monthVal == 7 || monthVal == 8 || monthVal == 10 || monthVal == 12) {
days = 31;
} else if (monthVal == 4 || monthVal == 6 || monthVal == 9 || monthVal == 11) {
days = 30;
} else {
if ((yearVal % 4 == 0 && yearVal % 100 != 0) || (yearVal % 400 == 0)) {
days = 29;
} else {
days = 28;
}
}
$("#birthdayDay").empty();
for (var d = 1; d <= days; d++) {
$("#birthdayDay").append("<option value=\"" + d + "\">" + d + "</option>");
}
}
})

</script>
</body>

</html>

日期的插件

原文:https://www.cnblogs.com/yangwan/p/10414153.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!