js 时间处理系列

一只刚入行的小菜鸟,大神请指教

最近项目有用到相关时间的处理,记录一下

当前时间的函数处理

  var getFormat = function ()
    {
        var date = new Date();  
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var day = date.getDate();
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var seconds = date.getSeconds();

        month = month<10?'0' + month:month;
        day = day<10?'0' + day:day;
        hours = hours<10?'0' + hours:hours;
        minutes = minutes<10?'0' + minutes:minutes;
        seconds = seconds<10?'0' + seconds:seconds;

		var str = year + '年' + month + '月' + day  + '日 ' + " " + hours + ":" + minutes +":" + seconds;
		
        return str;
    };
    
	console.log(getFormat());
	// 2019年01月06日  19:09:27

获取以当前时间为准的时间差:

var GetDateStr = function (AddDayCount) {
    var dd = new Date();
    
    dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
    var y = dd.getFullYear();
    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();//获取当前几号,不足10补0
    var h =  (dd.getHours())<10?"0"+(dd.getHours()):(dd.getHours());
    var ms = (dd.getMinutes())<10?"0"+(dd.getMinutes()):(dd.getMinutes());
    var s = (dd.getSeconds())<10?"0"+(dd.getSeconds()):(dd.getSeconds());

     return y+"-"+m+"-"+d+" "+h+":"+ms+":"+s;
};

//以 当前时间为基准 :2019-01-06 19:21:58

console.log("半年前:"+GetDateStr(-180));   //半年前:2018-07-10 19:18:59
console.log("三月前:"+GetDateStr(-90));    //三月前:2018-10-08 19:18:59
console.log("一月前:"+GetDateStr(-30));	   //一月前:2018-12-07 19:18:59 
console.log("昨天:"+GetDateStr(-1));       //昨天:2019-01-05 19:18:59
console.log("今天:"+GetDateStr(0));        //今天:2019-01-06 19:21:58
console.log("后天:"+GetDateStr(2));        //后天:2019-01-08 19:21:58
console.log("一月后:"+GetDateStr(30));     //一月后:2019-02-05 19:21:58
console.log("三月后:"+GetDateStr(90));     //三月后:2019-04-06 19:21:58
console.log("半年后:"+GetDateStr(180));    //半年后:2019-07-05 19:21:58
console.log("一周:"+GetDateStr(-7));       //一周:2018-12-30 19:21:58

获取每个月份的天数:


var getCountDays = function () {

    var curDate = new Date();
    var curMonth = curDate.getMonth();				 // 注意当前月份没有加 1 
    var d =  curDate.getDate();                      
    var y = curDate.getFullYear();

    
    /**下面的方法只是在项目中需要用到获取本月到本年的1月1日的所有天数**/   
     var cc = null;
    var dateSum = null;
    var str = [1,2,3,4,5,6,7,8,9,10,11,12];           //  默认列出了一年的所有月份
    for(var i = 0;i<str.length;i++){
        if(curMonth+1 == str[i] && curMonth != 0){    //  判断当前月份与数组中的月份相等,
            cc = str.slice(0,i+1);                    //  保留与数组中匹配的月份之前的所有数
            for(var i = 0;i<cc.length;i++){
                var day = new Date(y,str[i],0);      
                dateSum += day.getDate();             //  这里是本月到今年1月1日的所有天数
            }
        }
    }

    if(d == 1){                                        // 这是个人需求  如果是每月的1日的话,需要的是上个月的所有天数
        curDate.setMonth(curMonth);                    // 可以根据传入相关的月份来进行获取相关月份的天数  curMonth
    }else {
        curDate.setMonth(curDate.getMonth() + 1);      
    }
    
	/*******************上面的方法只是记录 如果没有用到请忽略 ****************************/


    /* 将日期设置为0, 这里为什么要这样设置, 我不知道原因, 这是从网上学来的 */
    curDate.setDate(0);
    /* 返回当月的天数 */
    return curDate.getDate();
}

上面所述方法都是浏览其他大神微博进行需求修改,如原作不适,请联系QQ435253164进行删除,再次说声抱歉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值