js 获取当前月和当前周的第一天和最后一天

JavaScript027

js 获取当前月和当前周的第一天和最后一天,第1张

前言:需求里面有,做了就记录一下

第一种:获取当前月 当前周 的第一天 时分秒都为0,最后一天时分秒为23:59:59

ps:如果想获得指定日期的当前周,new Date('2020-1-2') 传参就可以了

//获取当前周

getTime(){

var date = new Date()

// 本周一的日期

date.setDate(date.getDate() - date.getDay() + 1)

var begin = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 00:00:00"

// 本周日的日期

date.setDate(date.getDate() + 6)

var end = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 23:59:59"

let timeInfo={

begin:begin,

end:end

}

return timeInfo

}

//获取当前月

getMtime(){

var data=new Date()

data.setDate(1)

data.setHours(0)

data.setSeconds(0)

data.setMinutes(0)

var start = data.getTime()

var currentMonth = data.getMonth()

var nextMonth = ++currentMonth

var nextMonthFirstDay = new Date(

data.getFullYear(),

nextMonth,

1

)

var end = nextMonthFirstDay-1

let timeInfo={

begin: this.timestampToTime(start),//这里调用时间戳转年月日时分秒方法

end: this.timestampToTime(end)

}

return timeInfo

}

//时间戳转年月日时分秒方法

timestampToTime (cjsj) {

var date = new Date(cjsj) //时间戳为10位需*1000,时间戳为13位的话不需乘1000

var Y = date.getFullYear() + '-'

var M = (date.getMonth()+1 <10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'

var D = (date.getDate() <10 ? '0'+date.getDate() : date.getDate()) + ' '

var h = (date.getHours() <10 ? '0'+date.getHours() : date.getHours()) + ':'

var m = (date.getMinutes() <10 ? '0'+date.getMinutes() : date.getMinutes())+ ':'

var s = (date.getSeconds() <10 ? '0'+date.getSeconds() : date.getSeconds())

return Y+M+D+h+m+s

}

JS有自带的日期函数,获取如下:var date = new Date()var year = date.getFullYear()//获取年份var month = date.getMonth()+1//获取月份,因为是从0-11所以要+1var day = date.getDate()//获取天数var hour = date.getHours()//获取小时var minute = date.getMinutes()//获取分钟var second = date.getSeconds()//获取秒

1、根据输入的日期,获取年,月,日信息。

2、根据月信息,减去一个月,就是上一个月。注意1月份是上一年的12月份。

3、然后再拼接成日期格式

根据上面步骤,可以写对应的功能函数

/**

         * 获取上一个月

         *

         * @date 格式为yyyy-mm-dd的日期,如:2014-01-25

         */

        function getPreMonth(date) {

            var arr = date.split('-')

            var year = arr[0] //获取当前日期的年份

            var month = arr[1] //获取当前日期的月份

            var day = arr[2] //获取当前日期的日

            var days = new Date(year, month, 0)

            days = days.getDate() //获取当前日期中月的天数

            var year2 = year

            var month2 = parseInt(month) - 1

            if (month2 == 0) {//如果是1月份,则取上一年的12月份

                year2 = parseInt(year2) - 1

                month2 = 12

            }

            var day2 = day

            var days2 = new Date(year2, month2, 0)

            days2 = days2.getDate()

            if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30

                day2 = days2

            }

            if (month2 < 10) {

                month2 = '0' + month2//月份填补成2位。

            }

            var t2 = year2 + '-' + month2 + '-' + day2

            return t2

        }

 

 调用

 alert(getPreMonth("2014-01-25"))