JavaScript计算两个日期时间段内日期的方法

原创 donyFeng6 随笔 前端资料 235阅读 2017-05-05 16:48:18 举报

这篇文章主要介绍了JavaScript计算两个日期时间段内日期的方法,涉及javascript操作时间的技巧,需要的朋友可以参考下

/*****

  • 计算两个日期时间段内所有日期
  • timer 对象 startTime 开始时间 endTime 结束时间 dateType 时间类型
  • return 日期数组
    */
    function dataScope(times) {
    var getDate = function(str) {
    var tempDate = new Date(str);
    tempDate.setDate(tempDate.getDate() - 1);
    return tempDate;
    }
    var date1 = getDate(times.startTime);
    var date2 = new Date(times.endTime);
    if (date1 > date2) {
    var tempDate = date1;
    date1 = date2;
    date2 = tempDate;
    }
    date1.setDate(date1.getDate() + 1);
    var dateArr = [];
    var i = 0;
    if (times.dateType == 'Hours') {
    while (!(date1.getFullYear() == date2.getFullYear() && date1.getMonth() == date2.getMonth() && date1.getDate() == date2.getDate() && date1.getHours() > date2.getHours())) {
    var Month = (date1.getMonth() + 1).toString();
    if (Month.length == 1) {Month = "0"+Month};
    var dayStr =date1.getDate().toString();
    if(dayStr.length == 1){ dayStr="0"+dayStr;}
    var Hours =date1.getHours().toString();
    if (Hours.length == 1) {Hours = "0"+Hours}
    dateArr[i] = date1.getFullYear() + "-" + Month + "-" + dayStr +' '+Hours+':00';
    i++;
    date1.setHours(date1.getHours() + 1);
    }
    }else if (times.dateType == 'day') { //日
    while (!(date1.getFullYear() == date2.getFullYear() && date1.getMonth() == date2.getMonth() && date1.getDate() > date2.getDate())) {
    var dayStr =date1.getDate().toString();
    var Month = (date1.getMonth() + 1);
    if(dayStr.length == 1){ dayStr="0"+dayStr;}
    if (Month <= 9) {Month = "0"+Month};
    dateArr[i] = date1.getFullYear() + "-" + Month + "-" + dayStr;
    i++;
    date1.setDate(date1.getDate() + 1);
    }
    }else if(times.dateType == 'month'){ //月
    while (!(date1.getFullYear() == date2.getFullYear() && date1.getMonth() > date2.getMonth())) {
    var Month = (date1.getMonth() + 1);
    if (Month <= 9) {Month = "0"+Month};
    dateArr[i] = date1.getFullYear() + "-" + Month;
    i++;
    date1.setMonth(date1.getMonth() + 1);
    }
    }else if(times.dateType == 'year'){ //年
    while (!(date1.getFullYear() > date2.getFullYear())) {
    dateArr[i] = date1.getFullYear();
    i++;
    date1.setFullYear(date1.getFullYear() + 1);
    }
    }
    return dateArr;
    }

参考资料 : http://www.jb51.net/article/62297.htm

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复