前端补齐起止日期之间的所有日期与月份的简单方法

       最近在做的一个图表可视化需求里面要求: 选定起止日期之后对起止日期里面每一天的数据进行展示,由于后端对数据的处理是没有数据就不返回, 所以起止日期之间的date列表需要前端进行处理, 任意选择两个起止时间之后需要得到的日期和月份列表如下: 

再换个日期显示一下:

 

实现思路:

一开始觉得需要自己处理每一个月的月份长度问题, 这样的话还得加上闰月的计算代码, 感觉虽然实现是没有什么问题, 但是觉得实现方式太过原始,代码也不简洁清爽, 后面了解了一下, 发现可以直接通过日期的setDate 和setMonth方法直接增加日期和月份, 这样的话每年每月到底是多少天的问题就不需要前端再计算和处理了.

下面直接贴代码:

 

代码github下载地址: https://github.com/cj348986512/getDateList/blob/master/dateList.html 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Python的datetime实现本周、上周、本月和上月起止日期的代码: ```python import datetime # 本周起止日期 now = datetime.datetime.now() start_of_week = now - datetime.timedelta(days=now.weekday()) end_of_week = start_of_week + datetime.timedelta(days=6) # 上周起止日期 start_of_last_week = start_of_week - datetime.timedelta(days=7) end_of_last_week = end_of_week - datetime.timedelta(days=7) # 本月起止日期 start_of_month = datetime.datetime(now.year, now.month, 1) if now.month == 12: end_of_month = datetime.datetime(now.year+1, 1, 1) - datetime.timedelta(days=1) else: end_of_month = datetime.datetime(now.year, now.month+1, 1) - datetime.timedelta(days=1) # 上月起止日期 last_month = now.month - 1 if now.month > 1 else 12 last_year = now.year - 1 if last_month == 12 else now.year start_of_last_month = datetime.datetime(last_year, last_month, 1) end_of_last_month = datetime.datetime(now.year, now.month, 1) - datetime.timedelta(days=1) # 输出起止日期 print("本周起止日期:", start_of_week.date(), "-", end_of_week.date()) print("上周起止日期:", start_of_last_week.date(), "-", end_of_last_week.date()) print("本月起止日期:", start_of_month.date(), "-", end_of_month.date()) print("上月起止日期:", start_of_last_month.date(), "-", end_of_last_month.date()) ``` 其中关键的方法是`datetime.timedelta()`表示时间差,例如`datetime.timedelta(days=7)`表示7天时间差。`datetime.datetime()`则表示一个具体的日期时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值