js实现获取当前时间是本月或本年第几周的方法

2019-04-19  本文已影响0人  FTD止水

没什么好说的,直接用ES6语法封装一个可以实现当前时间是(本月、本年)第几周的方法。新建一个getWeekNumber.js文件(文件名可以自己定义),代码如下:

export default {
    getMonthWeek(year,month,date){
        /*  
            month = 6 - w = 当前周的还有几天过完(不算今天)  
            year + month 的和在除以7 就是当天是当前月份的第几周  
        */      
        let dateNow = new Date(year, parseInt(month) - 1, date);
        let w = dateNow.getDay();//星期数
        let d = dateNow.getDate();
        return Math.ceil((d + 6 - w) / 7);      
    },
    getYearWeek(year,month,date){
        /*  
            dateNow是当前日期 
            dateFirst是当年第一天  
            dataNumber是当前日期是今年第多少天  
            用dataNumber + 当前年的第一天的周差距的和在除以7就是本年第几周  
        */      
        let dateNow = new Date(year, parseInt(month) - 1, date);
        let dateFirst = new Date(year, 0, 1);
        let dataNumber = Math.round((dateNow.valueOf() - dateFirst.valueOf()) / 86400000);
        return Math.ceil((dataNumber + ((dateFirst.getDay() + 1) - 1)) / 7);        
    }
}

工具封装好了之后,就可以在项目中引入并使用了,代码如下:

import getWeekNumber from "./tools/getWeekNumber.js"  //这里写的是自己getWeekNumber.js的存放路径
let a=getWeekNumber.getYearWeek(2019,4,19);    //a为2019年4月19日这天是当月的第几周
let b=getYearNumber.getYearWeek(2019,4,19);    //a为2019年4月19日这天是当年的第几周
上一篇下一篇

猜你喜欢

热点阅读