JavaScript获取某月和某周的日期范围(ionic3)

1 篇文章 0 订阅
1 篇文章 0 订阅

最近工作中,用到一个ionic3的日历控件,本身功能比较强大,基本满足了开发的需求,这个在后面的文章中单独做介绍。本章中主要说下获取某月和某周的日期范围。 

首先介绍下某周的的日期范围获取,这部分比较简单,直接上代码,在这部分代码中,我用到angular中管道对象DatePipe,作用是日期格式化,之前一直只是在html页面中用到,这次发现在js里,他依然很好用。当然啦,各位也可以用其他方式进行日期的格式化。

constructor(public navCtrl: NavController, public navParams: NavParams,
              private datePipe: DatePipe) {}

//一天的毫秒数  
const ONE_DAY_SECONDS = 86400000;

 /**
   * 根据日期获取当前周的日期范围
   * @param date
   */

  getWeekRange(date: any){
    let now = date.getDay();
    //每周开始日期
    let weekStart = this.datePipe.transform(new Date(date.getTime() - (now-1) * ONE_DAY_SECONDS), 'yyyy-MM-dd');
    //每周结束日期
    let weekEnd = this.datePipe.transform(new Date(date.getTime() + (7 - now) * ONE_DAY_SECONDS),'yyyy-MM-dd');
    
  }

 接下来是计算月的日期范围,这一块本来需要判断年份和月份,步骤就显得比较繁琐。那么这边可以利用Date对象中的一个特点,即日的参数为0时,会自动获取上个月的最后一天的日期。



  /**
   * 获取当前月的日期范围
   * @param date
   */
  getMonthRange(date: any){
    //获取下个月的月数
    let month = date.getMonth() + 1;
    let year = date.getFullYear();
    if(month === 12){
        //当前月为12月时,则年数+1,月份为1月
        month = 0;
        year = year + 1;
    }
    //日参数设为0,即可获取上个月最后一天的日期
    let d= new Date(year, month, 0);
    return d;
  }

亲测有效,利用这个特性在以后月份的计算中就会省力很多。如果大家有什么更好的方法,欢迎交流探讨~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CC_leather

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值