当前位置: 首页 > news >正文

element-ui周选择器,如何获取年、周、起止日期?

说明

版本:vue2、element-ui@2.15.14
element-ui的日期选择器可以设为周,即type=week,官方示例如下:
在这里插入图片描述
如果你什么都不操作,那么获取的周的值为:

value1: Tue Aug 06 2024 00:00:00 GMT+0800 (中国标准时间)

如果给周选择器设置value-format,那么用weekValue值进行计算的时候,大概率会报错!
那么,怎能能同时获取所选周的年份、第几周、周的起止日期呢?

实现步骤

效果图:

在这里插入图片描述

代码:
 <el-date-pickerv-model="weekValue"type="week"format="yyyy 第 WW 周"placeholder="选择周":picker-options="weekOptions"style="width: 100%;"@change="changeWeek"
>
</el-date-picker>
export default {data() {return {weekValue: null,weekOptions: {firstDayOfWeek: 1,}}}methods: {changeWeek(val) {const year = val.getFullYear();const firstDayOfYear = new Date(year, 0, 1);const pastDaysOfYear = Math.floor((val - firstDayOfYear) / (24 * 60 * 60 * 1000));const week = Math.ceil((pastDaysOfYear + firstDayOfYear.getDay()) / 7);let startTime = new Date(val.getTime()); //开始时间let endTime = new Date(val.getTime() + (24 * 60 * 60 * 1000) * 6); //结束时间let timeArr = [startTime.toISOString().slice(0, 10), endTime.toISOString().slice(0, 10)];console.log('周的起止日期', timeArr)console.log('year', year)console.log('week', week)}}
}
简单解析
  • 步骤一:给周的picker-options属性的firstDayOfWeek设置1,即默认周的第一天是周一,element-ui的默认值为7,即周日;这样你就能根据所选值计算出周的起止日期了,改变选择时周的val值就是周一,加+就是所选的周日了。
  • 步骤二:计算年份:val.getFullYear()
  • 步骤三:根据年份计算是第几周,最后自己赋值给响应的变量即可!

最后

小编是前端开发者,目前正在持续更新《若依nodejs全栈》系列,请大家多多关注。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C# Type 对象序列化与反序列化
  • 合并两个有序数组(LeetCode)
  • oracle创建dblink使得数据库A能够访问数据库B表LMEAS_MFG_FM的数据
  • sql获取过去的小时数
  • vue请求springboot接口下载zip文件
  • 【书生大模型实战营第三期 | 入门岛第3关-Git 基础知识】
  • java并发包AtomicInteger类
  • PHP之docker学习笔记
  • uni-app接人腾讯地图
  • 240811-Gradio通过鼠标右键添加事件函数的功能
  • Springboot实现邮箱发送
  • 014集——浮点数值类型——C#学习笔记
  • yarn的淘宝镜像
  • 【代码随想录】有序数组的平方
  • 迪米特法则(LoD)
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • E-HPC支持多队列管理和自动伸缩
  • FineReport中如何实现自动滚屏效果
  • gcc介绍及安装
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java到底能干嘛?
  • js
  • nginx 负载服务器优化
  • Puppeteer:浏览器控制器
  • RxJS: 简单入门
  • Vue2 SSR 的优化之旅
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 半理解系列--Promise的进化史
  • 给初学者:JavaScript 中数组操作注意点
  • 利用jquery编写加法运算验证码
  • 无服务器化是企业 IT 架构的未来吗?
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 在weex里面使用chart图表
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 如何用纯 CSS 创作一个货车 loader
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​低代码平台的核心价值与优势
  • ​水经微图Web1.5.0版即将上线
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #### go map 底层结构 ####
  • #13 yum、编译安装与sed命令的使用
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #QT项目实战(天气预报)
  • (42)STM32——LCD显示屏实验笔记
  • (LeetCode 49)Anagrams
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (web自动化测试+python)1
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计大学生兼职系统
  • (回溯) LeetCode 131. 分割回文串
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (十)T检验-第一部分
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法