Js获取或计算时间的相关操作

//获取当前日期(年月日),如:2017-12-18
    function getNowDate() {
        var dd = new Date();
        var y = dd.getFullYear();
        //获取当前月份的日期,不足10补0
        var m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1);
        //获取当前几号,不足10补0
        var d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate();
        return y + '-' + m + '-' + d;
    }

    //计算多少天前后的日期
    //addDayCount:前后要计算的天数
    //startDate:开始日期,为空则表示当前日期
    function getDateAdd(addDayCount, startDate) {
        /******
            半年前:getDateAdd(-180)
            三月前:getDateAdd(-90)
            一月前:getDateAdd(-30)
            昨天:getDateAdd(-1)
            今天:getDateAdd(0)
            明天:getDateAdd(1)
            后天:getDateAdd(2)
            一月后:getDateAdd(30)
            三月后:getDateAdd(90)
            半年后:getDateAdd(180)
        ******/

        var dd = startDate && startDate.length > 0 ? new Date(startDate) : new Date();
        //获取addDayCount天后的日期
        dd.setDate(dd.getDate() + addDayCount);
        var y = dd.getFullYear();
        //获取当前月份的日期,不足10补0
        var m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1);
        //获取当前几号,不足10补0
        var d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate();
        return y + '-' + m + '-' + d;
    }

    /**
     * 计算2个日期相差的天数,可包含今天,如:2017-12-18到2017-12-20,相差2天(isIncludeToday=true时为3天)
     *  startDateString:开始日期
     *  endDateString:结束日期
     *  isIncludeToday:是否包含今天
     */
    function dateDiff(startDateString, endDateString, isIncludeToday) {
        var separator = "-"; //日期分隔符
        var startDates = startDateString.split(separator);
        var endDates = endDateString.split(separator);
        var startDate = new Date(startDates[0], startDates[1] - 1, startDates[2]);
        var endDate = new Date(endDates[0], endDates[1] - 1, endDates[2]);
        //return parseInt(Math.abs(endDate - startDate) / 1000 / 60 / 60 / 24) + (isIncludeToday ? 1 : 0);//把相差的毫秒数转换为天数
        return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24) + (isIncludeToday ? 1 : 0);//把相差的毫秒数转换为天数
    }

 

posted @ 2017-12-26 09:09  你也很优秀  阅读(986)  评论(0编辑  收藏  举报