客户的奇葩要求: 需要按日期条件查询,日历控件选择开始时间结束时间还嫌麻烦
所以,做了个比较low的下拉框选择几个已经规定好的时间段
效果如下:
结束日期不会超过当前日期,超过当前月份的选项不可选(例如:当前是11月22日,就不可点击十二月,点击11月或者下半年,结束日期都会等于2018-11-22)
<html>
<body>
<select onchange="getdate(this.options[this.options.selectedIndex].value)" id="select1">
<option value="">--请选择--</option>
<option value='January'>1月</option>
<option value='February'>2月</option>
<option value='March'>3月</option>
<option value='April'>4月</option>
<option value='May'>5月</option>
<option value='June'>6月</option>
<option value='July'>7月</option>
<option value='August'>8月</option>
<option value='September'>9月</option>
<option value='October'>10月</option>
<option value='November'>11月</option>
<option value='December'>12月</option>
<option value='1quarterr'>1季度</option>
<option value='2quarterr'>2季度</option>
<option value='3quarterr'>3季度</option>
<option value='4quarterr'>4季度</option>
<option value='1halfyear'>上半年</option>
<option value='2halfyear'>下半年</option>
<option value='fullyear'>全年</option>
</select>
<input type="text" id="begintime">
<input type="text" id="endtime">
</body>
<script>
var date=new Date()
var year=date.getFullYear();
var month=date.getMonth()+1;
//var month=5;
function getdate(obj){
if(obj==""){
return;
}
if(obj=="January"){
determine(1);
}
if(obj=="February"){
determine(2);
}
if(obj=="March"){
determine(3);
}
if(obj=="April"){
determine(4);
}
if(obj=="May"){
determine(5);
}
if(obj=="June"){
determine(6);
}
if(obj=="July"){
determine(7);
}
if(obj=="August"){
determine(8);
}
if(obj=="September"){
determine(9);
}
if(obj=="October"){
determine(10);
}
if(obj=="November"){
determine(11);
}
if(obj=="December"){
determine(12);
}
if(obj=="1quarterr"){
determine_q(1);
}
if(obj=="2quarterr"){
determine_q(2);
}
if(obj=="3quarterr"){
determine_q(3);
}
if(obj=="4quarterr"){
determine_q(4);
}
if(obj=="1halfyear"){
determine_y(1);
}
if(obj=="2halfyear"){
determine_y(2);
}
if(obj=="fullyear"){
assignment(year+"-01-01",year+"-"+month+"-"+date.getDate());
}
}
function compareTime(t1,t2){
var d1 = new Date(t1.replace(/\-/g, "\/"));
var d2 = new Date(t2.replace(/\-/g, "\/"));
if(d1 < d2){
return false;
}else{
return true;
}
}
function determine(m){
if(month==m){
if(m<10){
m="0"+m;
}
assignment(year+"-"+m+"-01",year+"-"+m+"-"+date.getDate());
}else if(month<m){
alert("查看时间不能大于当前月份");
var options = document.getElementById("select1").children;
options[0].selected=true;
assignment("","");
return;
}else{
if(m<10){
m="0"+m;
}
assignment(year+"-"+m+"-01",year+"-"+m+"-"+new Date(year,parseInt(m),0).getDate());
}
}
function determine_q(m){
var begintime;
var endtime;
if(m==1){
begintime=year+"-01-01";
endtime=year+"-03-31";
}else if(m==2){
begintime=year+"-04-01";
endtime=year+"-06-30";
}else if(m==3){
begintime=year+"-07-01";
endtime=year+"-09-31";
}else{
begintime=year+"-10-01";
endtime=year+"-12-31";
}
if(compareTime(begintime,year+"-"+month+"-"+date.getDate())){
alert("查看时间不能大于当前月份");
var options = document.getElementById("select1").children;
options[0].selected=true;
assignment("","");
return;
}else if(compareTime(endtime,year+"-"+month+"-"+date.getDate())){
endtime=year+"-"+month+"-"+date.getDate();
assignment(begintime,endtime);
}else{
assignment(begintime,endtime);
}
}
function determine_y(m){
var begintime;
var endtime;
if(m==1){
begintime=year+"-01-01";
endtime=year+"-06-30";
}else if(m==2){
begintime=year+"-07-01";
endtime=year+"-12-31";
}
if(compareTime(begintime,year+"-"+month+"-"+date.getDate())){
alert("查看时间不能大于当前月份");
var options = document.getElementById("select1").children;
options[0].selected=true;
assignment("","");
return;
}else if(compareTime(endtime,year+"-"+month+"-"+date.getDate())){
endtime=year+"-"+month+"-"+date.getDate();
assignment(begintime,endtime);
}else{
assignment(begintime,endtime);
}
}
function assignment(begintime,endtime){
document.getElementById("begintime").value=begintime;
document.getElementById("endtime").value=endtime;
}
</script>
</html>