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;
  }

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

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

CC_leather

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值