Date() 按条件打印当前日期的月份和周

Posted dopocheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Date() 按条件打印当前日期的月份和周相关的知识,希望对你有一定的参考价值。

条件:打印 月份-第几周 若本月前七天不在全在第一周则这一周计入到上月第五周。

分析:
  1.条件判断分别处理前七天和大于等于七天的数据;
  2.当前月的7号是关键,如果在周天就不需要放到上月,如果不在周天就要条件判断。
  3.日期函数理解
时间函数:
  创建 Date 对象的语法:var myDate=new Date()
  Date()-返回当日的日期和时间
  getDate()-从Date对象返回一个月中的某一天(1-31)
  getDay()-从Date对象返回一个周内的某一天(0-6对应周天到周六)
  getMonth()-从Date对象月份(0-11)
  getFullYear()/getYear()-从Date对象以四位数字返回年份
  parse()-返回1970年1月1日午夜到指定日期(字符串)的毫秒数(时间戳)。
  setDate()-设置Date对象月中的某一天
<!-- 第几月的第几周 打印结果: 月份-第几周 若本月前七天不在全在第一周则这一周计入到上月第五周,余下的周要减一-->
<template>
    <div>
        <p>week of month!</p>
    </div>
</template>

<script>
export default {
    created() {
        this.getWeek("Sun Aug 31 2019 18:05:38 GMT+0800 (中国标准时间)")
    },

    methods: {
        getWeek(dateStr) {
            // Date.parse() 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,
            dateStr = Date.parse(dateStr);
            // 转成 date 对象
            let tarDate = new Date(dateStr);
            let tarDay = tarDate.getDay() == 0 ? 7 : tarDate.getDay(); // 目标日期是周几 (1-7)
            console.log(tarDate.getDate())           
            // 第几周 
            let tarWeek = Math.ceil((tarDate.getDate()/7));
            console.log("tarWeek", tarWeek)
            // getMonth() 返回 (0-11)
            let tarMonth = tarDate.getMonth() + 1;
            // 不能 let tarDate7 = tarDate tarDate7改变后这个也会变
            let tarDate7 = new Date(dateStr);
            tarDate7.setDate(7);
            let tarDate7Day = tarDate7.getDay();    // 当月 7 号是周几 (0-6)
            if (tarDate7Day == 0) {
                tarWeek;
            } else {
                if (tarDate.getDate() > 7) {
                    console.log("> 7");
                    tarWeek -= 1;
                } else {
                    console.log("<= 7");
                    if (tarDate7Day < tarDay) {
                        tarMonth = tarDate.getMonth();
                        tarWeek = 5;
                    } else {
                        tarWeek -= 1;
                    }
                }
            }
            console.log(`${tarMonth}-${tarWeek}`);
        }
    }
}
</script>

 

以上是关于Date() 按条件打印当前日期的月份和周的主要内容,如果未能解决你的问题,请参考以下文章

sql如何按日期中的月份查询

LODOP打印用JS获取的当前日期

oracle如何按日期分组,底下的代码如何让它成功?

js 怎么求两个日期相差几个月零几天?

PHP计算年龄

mysql日期函数 当前日期 curdate() , 当前年 year(curdate()), 取date的年份 year(date) ,取date的月份 month(date)