js根据当前时间获取指定范围内的时间段日期

版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/78311491

一. 前言

    在项目当中,有很多时候需要根据当前时间来获取指定的时间范围,用于查询某个时间段内的数据库数据,比如根据当前时间获取今天、昨天、一周内、本周内、一个月内等

的时间范围;

   本篇博客则提供一个获取时间段的js工具,简洁方便,也应用于很多项目上,有兴趣的程序猿可参考参考;


二. 实践

    1. 下面则是具体的js方法:

//判断时间条件
function timeFormat(){
	var startTime = $('#startTime').val();
	var endTime = $('#endTime').val();
	if(startTime=='' || endTime==''){
		jp.warning("时间不能为空");
		return false; 
	}
	var date1 = new Date(startTime.replace(/-/g,"/"));
	var date2 = new Date(endTime.replace(/-/g,"/"));
	if(date2.getTime()<date1.getTime()){
		jp.warning("开始时间不能大于结束时间!");
		return false;
	}
	var day = parseInt(((date2.getTime()-date1.getTime())/1000)/(24*60*60));
	if(day>30){
		jp.warning("查询的时间区间不能超过30天");
		return false;
	}
	return true;
}

/**获取指定范围内时间*/
//设定查询时间
function setSearchDate(range) {
	var type="0";
	switch (range) {
		//0表示昨天
		case 0:$('#startTime').val(addDate(-1)+" 00:00:00");$('#endTime').val(addDate(0)+" 00:00:00");break;
		//1表示今天
		case 1:$('#startTime').val(addDate(0)+" 00:00:00");$('#endTime').val(addDate(0,type));break;
		//2表示本周内
		case 2:;$('#startTime').val(addDate(-new Date().getDay()+1)+" 00:00:00");$('#endTime').val(addDate(0,type));break;
		//3表示一周内
		case 3:$('#startTime').val(addDate(-6,type));$('#endTime').val(addDate(0,type));break;
		//4表示本月内
		case 4:$('#startTime').val(addDate(-new Date().getDate()+1)+" 00:00:00");$('#endTime').val(addDate(0,type));break;
		//5表示一月内
		case 5:$('#startTime').val(addDate(-30,type));$('#endTime').val(addDate(0,type));break;
		default:break;
	}
}

//加减天数(含时分秒)
function addDate(days,type) {
	var d = new Date();
	d.setDate(d.getDate()+days);
	var month = d.getMonth()+1;
	var day = d.getDate();
	var hour = d.getHours();
	var minutes = d.getMinutes();
	var seconds = d.getSeconds();
	
	if(month<10) {
		month="0"+month;
	}
	
	if(day<10) {
		day="0"+day;
	}
	var time="";
	//type不是空字符串 表示需要时分秒
	if(type!=null&&""!=type) {
		if(hour<10) {
			hour="0"+hour;
		}
		
		if(minutes<10) {
			minutes="0"+minutes;
		}
		
		if(seconds<10) {
			seconds="0"+seconds;
		}
		time = " "+hour+":"+minutes+":"+seconds;
	}

	var val = d.getFullYear()+"-"+month+"-"+day+time;
	return val;
}
    

    2. 下面是jsp页面的展示代码:

	<div style="margin-top:20px;width:600px;height:200px;border:1px solid gray">
	<h>时间utils</h>
			<div>
			<span>时间范围:</span><input type="text" id="startTime"/>~<input type="text" id="endTime"/>
			</div>
			<div style="padding-top: 10px;">
				<div >
					<input  type="radio" name="dateTime"  onclick="setSearchDate(0)">
					<label >昨天</label>
				</div>
				<div >
					<input  type="radio" name="dateTime" onclick="setSearchDate(1)">
					<label >今天</label>
				</div>
				<div >
					<input  type="radio" name="dateTime"  onclick="setSearchDate(2)">
					<label >本周</label>
				</div>
				<div >
					<input  type="radio" name="dateTime" onclick="setSearchDate(3)">
					<label >一周</label>
				</div>
				<div >
					<input  type="radio" name="dateTime" onclick="setSearchDate(4)">
					<label >本月</label>
				</div>
				<div >
					<input  type="radio" name="dateTime"  onclick="setSearchDate(5)">
					<label  >一月</label>
				</div>
			</div>
	</div>

     3.下面则是根据当前时间查询的效果,当前时间是(截图有时间差):2017-10-22 17:49:00




三. 总结

    以上就是js根据当前时间,查询指定范围内的时间戳的js方法,相对简洁方便,有需要的程序猿可参考,有其他好方法欢迎交流分享~

展开阅读全文

没有更多推荐了,返回首页