setDate() 解决跨月问题

起因

我要做一个可选择“今天”、“明天”、“后天”的时间控件供用户选择,并发送选定后的日期给服务端。

刚开始我是获取当前日期进行 +0、+1、+2 操作的,怪我想的太简单,跨月跨年之后很快暴露问题!

那么我要如何解决这个问题呢?

算平年 or 闰年?算这个月有多少天?算下个月有多少天?(看起来好复杂啊,我太懒…)

setDate

还好此时看到前人一段代码中的 setDate(0),Ok 一起来学习下

首先 setDate(0) 是获取上个月的最后一天的意思,来看个例子。
在这里插入图片描述貌似没什么问题。

再来看一下2月份是否也正常。(月份是从0开始的,所以此时设置2,即为3月)
在这里插入图片描述也没什么问题~

那么setDate()除了可以设置0之外还可以怎么用?我试着设置除0外的其他数字。
在这里插入图片描述
到这里,setDate(n)的用法已经一清二楚了:

  • n为0 —— 上个月的最后一天
  • n为-1 —— 上个月最后一天的前一天
  • n大于0 且 小于本月的天数 —— 本月的第n天
  • n大于本月的天数 —— 减去本月的天数后再设置日期
    比如setDate(34)后是2020/2/3,其计算过程:34-31=3
    比如setDate(63)后是2020/3/3,其计算过程:63-31-29=3

是不是此刻这个问题就变得so easy了~

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值