moment 当前周一到周日_Ant Design 通过 WeekPicker 获取一周的起止时间

项目中遇到了选择日期获取当前日期一周的周一和周日的日期,如下:

ebbe6ae68d722a1b00abb1f953974aaf.png

项目使用的是 ant design,所以第一时间想到了 DatePicker 中的 WeekPicker 组件,查询文档得到 WeekPicker 组件中的属性和方法如下:

1eb327f769318776a0c07b6c0f1554ae.png

引入组件,编写相关代码如下:

value={weekData}

onChange={this.handleWeekChange}

style={{ width: 260}}

placeholder='请选择日期'

/>

handleWeekChange= (weekData, weekStrings) =>{

console.log(weekData, weekStrings);

}

选择日期,打印 onChange 方法获取到回调值:

83e81e54f47fb00553e5de27536848c6.png

通过打印信息可以看出,返回的 weekData 是一个 moment 对象,weekString 是当前对象解析出来的时间值,

默认显示了选中的年份和第几周,这并不是我想要的,如果需要获取到当前周详细的时间信息,则需要对返回的结果进行处理,代码如下:

handleWeekChange = weekData =>{

const startDate= moment(weekData).day(1).format('YYYY/MM/DD (dddd)'); //周一日期

const endDate = moment(weekData).day(7).format('YYYY/MM/DD (dddd)'); //周日日期

console.log(startDate, endDate);

}

重新选择时间(比如2018年11月6日):

df191703bf812cb0cddef9303414e3d5.png

查看打印信息,如下:

c29b4cd59044bc846c97978704cb79c8.png

可以看到,已经正确获取到了当前日期所在周的起止日期了。

这里的日期解析主要用到了 moment.js 提供的两个方法,

moment(date).day(1) 代表指定日期所在周的星期一的日期,

moment(date).day(7) 代表指定日期所在周的星期日的日期,

并且通过 format 方法格式化成指定的格式。更多 moment 的使用方法,参考moment.js 文档

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值