时间处理的一些代码片段

项目开发中会用到一些有关时间的上的处理,比如根据某个时间返回该时间的前后一段时间,判断两个时间点的相隔时间等。

1、获取某个时间点的前后一段时间

根据某个时间点获取前后多少年、月、日、时、分、秒函数

/**
 * [根据某个时间点获取前后多少年、月、日、时、分、秒]
 * @param  {[type]} dateNow  [需要获取的时间点]
 * @param  {[type]} stepData [具体时间段区间]
 * @param  {[type]} flag [标志位,用来区分年、月、日、时、分、秒]
 * @return {[type]}  [返回新的时间]
 */
var getTimes = function(dateNow, stepData, flag){
    var date = dateNow.split(' ')[0].split('-'),
        time = dateNow.split(' ')[1].split(':'),        
        year = date[0],
        month = date[1]-1,
        day = date[2],
        second = time[2],
        minute = time[1],
        hour = time[0];     
    var dateNew = new Date(year, month, day, hour, minute, second, 00);

    switch(flag) {
        case "year": stepData && (dateNew.setFullYear(dateNew.getFullYear() + stepData));
            break;
        case "month": stepData && (dateNew.setMonth(dateNew.getMonth()+1 + stepData));
            break;
        case "date": stepData && (dateNew.setDate(dateNew.getDate() + stepData));
            break;
        case "hour": stepData && (dateNew.setHours(dateNew.getHours() + stepData));
            break;
        case "minute": stepData && (dateNew.setMinutes(dateNew.getMinutes() + stepData));
            break;
        case "second": stepData && (dateNew.setMilliseconds(dateNew.getSeconds() + stepData));
            break;
        default: stepData && (dateNew = new Date(dateNew.getTime() + stepData));
            break;
    } 
    var t = {
        Y:dateNew.getFullYear(),
        m:dateNew.getMonth()+1,
        d:dateNew.getDate(),
        h:dateNew.getHours(),
        M:dateNew.getMinutes(),
        s:dateNew.getSeconds()
     }
     function offset(num){//个位前补0
        return (num < 10 ? ('0'+num):num);
     }
     return t.Y+'-'+offset(t.m)+'-'+offset(t.d)+" "+offset(t.h)+":"+add0(t.M)+":"+offset(t.s);
}

2、计算两个时间的时间间隔

var startTime = $("#startTime").val();//开始时间
var endTime = $("#endTime").val();//结束时间
var subTime = (toDate(endTime).getTime()-toDate(startTime).getTime())/1000/3600/24;
function toDate(strDateTime) {
    var strDateTimes = strDateTime.split(' '),
        strDate = strDateTimes[0].split('-'),
        year = Number(strDate[0]),
        month = Number(strDate[1]) - 1,
        day = Number(strDate[2]),
        strTime = strDateTimes[1].split(':'),
        hour = Number(strTime[0]),
        minute = Number(strTime[1]),
        secend = Number(strTime[2]);
    return new Date(year, month, day, hour, minute, secend);
}

3、时间控件赋值

function getTime(isEndTime){
     var date = new Date();
     var t = {
        m:date.getMonth()+1,
        d:date.getDate(),
        h:date.getHours(),
        M:date.getMinutes(),
        s:date.getSeconds()
     }
     function offset(num){//个位前补0
        return (num < 10 ? ('0'+num):num);
     }
     return date.getFullYear() + '-' + offset(t.m) +'-'+ offset(t.d) 
        + ' ' + (isEndTime ? '23:59:59':'00:00:00');
};

转载于:https://www.cnblogs.com/summer7310/p/6560355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值