在js中如何获取上一个季度的开始,结束日期

JavaScript08

在js中如何获取上一个季度的开始,结束日期,第1张

var y = new Date().getFullYear()  //当前年份

var m = new Date().getMonth()  //当前月份

var q = parseInt(m / 3)  //当前季度

var qs = new Date(y, (q - 1) * 3, 1)  //上一季度的开始日期

var qe = new Date(y, q * 3, 0)  //上一季度的结束日期

方法一:

const getDate = ()=>{

var d=new Date()

var year=d.getFullYear()

var month=change(d.getMonth()+1)

var day=change(d.getDate())

var hour=change(d.getHours())

var minute=change(d.getMinutes())

var second=change(d.getSeconds())

function change(t){

if(t<10){

return "0"+t

}else{

return t

}

}

return year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second

}

方法二:

使用moment时间插件

1、引入方式:<script src="moment.js"></script>

或者使用包管理器npm,引用直接使用命令:npm install moment

2、引入之后,直接使用monent().format('yyyy-MM-dd HH:mm:ss')

代码如下:

//date类型转成string  

<!--        

/**       

* 对Date的扩展,将 Date 转化为指定格式的String       

* 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符       

* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)       

* eg:       

* (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423       

* (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04       

* (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04       

* (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04       

* (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18       

*/          

//var date = new Date()        

//window.alert(date.pattern("yyyy-MM-dd hh:mm:ss"))     

// -->     

  

Date.prototype.pattern=function(fmt) {           

    var o = {           

    "M+" : this.getMonth()+1, //月份           

    "d+" : this.getDate(), //日           

    "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时           

    "H+" : this.getHours(), //小时           

    "m+" : this.getMinutes(), //分           

    "s+" : this.getSeconds(), //秒           

    "q+" : Math.floor((this.getMonth()+3)/3), //季度           

    "S" : this.getMilliseconds() //毫秒           

    }           

    var week = {           

    "0" : "\u65e5",           

    "1" : "\u4e00",           

    "2" : "\u4e8c",           

    "3" : "\u4e09",           

    "4" : "\u56db",           

    "5" : "\u4e94",           

    "6" : "\u516d"          

    }           

    if(/(y+)/.test(fmt)){           

        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length))           

    }           

    if(/(E+)/.test(fmt)){           

        fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""])           

    }           

    for(var k in o){           

        if(new RegExp("("+ k +")").test(fmt)){           

            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)))           

        }           

    }           

    return fmt           

}