前段时间写项目时,用到Element UI日期选择器el-date-picker,之前经常使用都是选择日,或者年月日时分秒这样子,这次用的周期的设置,看原文档默认周期起止是周日-周六,只是简单例子,我的需求周期的起止日期是周五到周四,下面是我具体实现过程。
日期选择器
参考Element官网:element.eleme.cn/#/zh-CN/com…
<el-date-picker
v-model="startWeek"
type="week"
:format="param.format"
placeholder="请选择开始周"
:picker-options="{firstDayOfWeek: 5}">
</el-date-picker>
左图是默认周的起止范围,右图是通过设置picker-options -->firstDayOfWeek来更改起始时间的,可设置1 到 7,默认是7,如图官方文档:
以上周期的起止展示就设置好了
如何设置默认展示当前第几周
开始我传入的是当前时间new Date(),选中后展示是不一样的,因为周期的计算范围变了,如图:
当时查了很多文档,最后我选用了moment.js来计算,大家也可以用别的方式,我这个仅做参考 moment.js官网:moment.nodejs.cn/
moment.js安装使用,我用的npm(其它方式可直接查看官网)
npm install moment --save
import moment from 'moment';
1、首先使用moment.updateLocale设置时区开始日(0-6 / 日-六)
moment.updateLocale(moment.locale(), { week: { dow: 5 } });
2、获取当前周的开始时间
moment().startOf('week').toString()
3、如果想获取第几周的开始日期,如下:(我获取的前七周,所以7*7)
moment().weekday(-49).format('YYYY-MM-DD')
以上就设置好了默认显示的周期
在日历上选择好需要的周期提交
此时获取到的时间格式为:
需要进行转化成后端需要的格式,例:年-周(2023-24)
moment(选择后的时间).utcOffset(480).format('yyyy-WW')
以上为我本次使用日期周选择的记录,如有问题欢迎大家留言指正。如对大家有帮助,可以点赞收藏噢~感谢阅读!