js获取两个时间段内的所有日期列表
function getDiffDate(start, end) {
var startTime = getDate(start);
var endTime = getDate(end);
var dateArr = [];
while ((endTime.getTime() - startTime.getTime()) > 0) {
var year = startTime.getFullYear();
var month = startTime.getMonth().toString().length === 1 ? "0" + (parseInt(startTime.getMonth().toString(),10) + 1) : (startTime.getMonth() + 1);
var day = startTime.getDate().toString().length === 1 ? "0" + startTime.getDate() : startTime.getDate();
dateArr.push(year + "-" + month + "-" + day);
startTime.setDate(startTime.getDate() + 1);
}
return dateArr;
}
function getDate (datestr) {
var temp = datestr.split("-");
if (temp[1] === '01') {
temp[0] = parseInt(temp[0],10) - 1;
temp[1] = '12';
} else {
temp[1] = parseInt(temp[1],10) - 1;
}
//new Date()的月份入参实际都是当前值-1
var date = new Date(temp[0], temp[1], temp[2]);
return date;
}
console.info(getDiffDate('2018-05-27', '2018-06-31'));
js写完后发现只获取日期无法满足需求
/**
* 获取日期段所有的日期字符串
* var weak = getAllWeak(begintime,endtime)+"," 加“,” //调用方法将动态的开始时间,结束时间放
* 入参数中
* weak.split(",")[i] //将获取的字符串截取
* @param start_time
* @param end_time
* @returns 返回所有日期的字符串
*/
function getAllWeak(start_time,end_time){
var begin = new Date(start_time), end = new Date(end_time);
var begin_time = begin.getTime(), end_time = end.getTime(), time_diff = end_time - begin_time;
var all_d = [];
for (var i = 0; i <= time_diff; i += 86400000){
var ds = new Date(begin_time + i);
all_d.push(ds.getFullYear()+"-"+(ds.getMonth()+1)+"-"+ds.getDate());
}
return all_d;
}
/**
* 获取日期对对应的星期几
* getWeakDays(weak.split(",")[i]) //将拆分的日期获取周几
* @param days
* @returns
*/
function getWeakDays(days){
var weekDay = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
var myDate = new Date(Date.parse(days));
return weekDay[myDate.getDay()];
}
/**
* weakStr[i]为周几显示
* @returns
*/
function getWeakInfo(begintime,endtime){
var weak = getAllWeak(begintime,endtime)+",";
var weakStr = weak.split(",");
for(var i = 0; i< weakStr.length-1; i++){
$(" <div class='d-0'>"+
" <div class='d-1'>"+
" <div class='d-1-4'>"+
weakStr[i]+
" </div>"+
" <div class='d-1-3' onclick=jumpPageSch(this) time='"+weakStr[i]+"'>"+
getWeakDays(weakStr[i])+
" </div>"+
" </div>"+
" <div class='d-2'>"+
" </div>"+
" <div class='d-3'>"+
" </div>"+
"</div>").appendTo($(".m-main"))
}
}
getWeakInfo('2021-04-27', '2021-05-12');
即可获取时间与对应日期
将字符串形式的日期转换成日期对象
var strTime="2011-04-16"; //字符串日期格式
var date= new Date(Date.parse(strTime.replace(/-/g, "/"))); //转换成Data();
new Date() ; //参数可以为整数; 也可以为字符串; 但格式必须正确
new Date(2009,1,1); //正确
new Date("2009/1/1"); //正确
new Date("2009-1-1"); //错误
new Date( year, month, date, hrs, min, sec) 按给定的参数创建一日期对象
参数说明:
year的值为:需设定的年份-1900。例如需设定的年份是1997则year的值应为97,即1997-1900的结果。所以Date中可设定 的年份最小为1900;
month的值域为0~11,0代表1月,11表代表12月;
date的值域在1~31之间;
hrs的值域在0~23之间。从午夜到次日凌晨1点间hrs=0,从中午到下午1点间hrs=12;
min和sec的值域在0~59之间。
例 Date day=new Date(11,3,4);
//day中的时间为:04-Apr-11 12:00:00 AM
另外,还可以给出不正确的参数。
例 设定时间为1910年2月30日,它将被解释成3月2日。
Date day=new Date(10,1,30,10,12,34);
System.out.println("Day's date is:"+day);
//打印结果为:Day’s date is:Web Mar 02 10:13:34 GMT+08:00 1910
1.日期格式转为日期标准字符串:2015-03-19
var formatDate = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
};
2.js方法返回值:2015-03-19 12:00:00
var formatDateTime = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h=h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
var second=date.getSeconds();
second=second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
};
调用:formatDate(Date()) formatDate(Date())
3.时间戳转为日期格式
//时间戳转日期格式
var formatDateTime3 = function(time, format){
var t = new Date(time);
var tf = function(i){return (i < 10 ? '0' : '') + i};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){
switch(a){
case 'yyyy':
return tf(t.getFullYear());
break;
case 'MM':
return tf(t.getMonth() + 1);
break;
case 'mm':
return tf(t.getMinutes());
break;
case 'dd':
return tf(t.getDate());
break;
case 'HH':
return tf(t.getHours());
break;
case 'ss':
return tf(t.getSeconds());
break;
}
})
};
4.时间格式字符串转为时间戳(毫秒)
var time1=‘2016-01-01 17:22:37’;
var date=new Date(time1.replace(/-/g, '/')); //开始时间
var time2=date.getTime();
如何将2015-03-12 12:00 转换成标准时间()?
Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)
var parserDate = function (date) {
var t = Date.parse(date);
if (!isNaN(t)) {
return new Date(Date.parse(date.replace(/-/g, "/")));
} else {
return new Date();
}
};
js方法返回值:Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)
5.判断时间间隔不超过24个小时
var date1=new Date("2004/09/16 20:08:00");
var date2=new Date("2004/09/17 20:08:00");
var date3=(date2.getTime()-date1.getTime())/1000; //相差秒数
if(date3>60*60*24*1000){
alert("开始时间与结束时间间隔大于24小时!");
return false; }