<head>
<title>年月日三下拉框联动</title>
<meta http-equiv='Content-Type' content='text/htmlcharset=gb2312'>
</head>
<body>
<form name=form1>
<select name=YYYY onchange="YYYYMM(this.value)">
<option value="">年</option>
</select>
<select name=MM onchange="MMDD(this.value)">
<option value="">月</option>
</select>
<select name=DD>
<option value="">日</option>
</select>
</form>
<script language="JavaScript">
window.onload = function(){
strYYYY = document.form1.YYYY.outerHTML
strMM = document.form1.MM.outerHTML
strDD = document.form1.DD.outerHTML
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
//先给年下拉框赋内容
var y = new Date().getFullYear()
var str = strYYYY.substring(0, strYYYY.length - 9)
for (var i = (y-30)i <(y+30)i++) //以今年为准,前30年,后30年
{
str += "<option value='" + i + "'>" + i + "</option>\r\n"
}
document.form1.YYYY.outerHTML = str +"</select>"
//赋月份的下拉框
var str = strMM.substring(0, strMM.length - 9)
for (var i = 1i <13i++)
{
str += "<option value='" + i + "'>" + i + "</option>\r\n"
}
document.form1.MM.outerHTML = str +"</select>"
document.form1.YYYY.value = y
document.form1.MM.value = new Date().getMonth() + 1
var n = MonHead[new Date().getMonth()]
if (new Date().getMonth() ==1 &&IsPinYear(YYYYvalue)) n++
writeDay(n)//赋日期下拉框
document.form1.DD.value = new Date().getDate()
}
function YYYYMM(str) //年发生变化时日期发生变化(主要是判断闰平年)
{
var MMvalue = document.form1.MM.options[document.form1.MM.selectedIndex].value
if (MMvalue == ""){DD.outerHTML = strDDreturn}
var n = MonHead[MMvalue - 1]
if (MMvalue ==2 &&IsPinYear(str)) n++
writeDay(n)
}
function MMDD(str) //月发生变化时日期联动
{
var YYYYvalue = document.form1.YYYY.options[document.form1.YYYY.selectedIndex].value
if (str == ""){DD.outerHTML = strDDreturn}
var n = MonHead[str - 1]
if (str ==2 &&IsPinYear(YYYYvalue)) n++
writeDay(n)
}
function writeDay(n) //据条件写日期的下拉框
{
var s = strDD.substring(0, strDD.length - 9)
for (var i=1i<(n+1)i++)
s += "<option value='" + i + "'>" + i + "</option>\r\n"
document.form1.DD.outerHTML = s +"</select>"
}
function IsPinYear(year)//判断是否闰平年
{ return(0 == year%4 &&(year%100 !=0 || year%400 == 0))}
//--></script>
</body>
</html>
//27-2月-2020转换为2020-2-27function getDate(str)
{
var strArr = str.split('-')
var day=strArr[0]
var month=strArr[1].replace("月",'')
var year=strArr[2]
date = (year + '-' + month + '-' + day).toString()
return date
}
要换成日期格式再转换下就可以了
仅针对这个问题来说,不需要那么大量的代码即可完成 方案1(适用于中国标准时间): var date = new Date(+new Date()+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,'')方案2(只用于题目中所述的格式转换)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)