首页 > 其他分享 >easyui datebox 周选择器 结合moment.js获取一周的时间范围

easyui datebox 周选择器 结合moment.js获取一周的时间范围

时间:2024-01-16 10:34:16浏览次数:17  
标签:function parentElement easyui js date var calendar 选择器 datebox

项目里用的easyui,用weekpicker的话需要与easyui代码有冲突会导致页面报错,所以直接改造一下easyui的datebox实现这一功能

1 <input type="text" class="easyui-datebox" data-options="formatter:myformatter,parser:myparser,onSelect:onSelect" id="S_Week">
 1 function myformatter(date){
 2     var y = date.getFullYear();
 3     var m = date.getMonth()+1;
 4     var d = date.getDate();
 5     return y+'第'+moment(date).week()+'周_'+y+'/'+m+'/'+d;
 6 }
 7 function myparser(s){
 8     if (!s) return new Date();
 9     var date = s.split('_')[1]
10     var ss = (date.split('/'));
11     var y = parseInt(ss[0],10);
12     var m = parseInt(ss[1],10);
13     var d = parseInt(ss[2],10);
14     if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
15         return new Date(y,m-1,d);
16     } else {
17         return new Date();
18     }
19 }
20 function onSelect(date){
21         var week = moment(date).week()
22         const specifiedWeek = moment().isoWeek(week)
23         const w_StartDate = specifiedWeek.startOf('week').format('YYYY-MM-DD');
24         const w_EndDate = specifiedWeek.endOf('week').format('YYYY-MM-DD');
25         $('#S_StartDate').datebox('setValue', w_StartDate);//开始时间input框
26         $('#S_EndDate').datebox('setValue', w_EndDate);//结束时间input框
27         var parentElement = $('.calendar-selected').parent();
28         var childElements = parentElement.children();
29         // 遍历子节点并输出
30         childElements.each(function() {
31         $(this).addClass('calendar-selected')
32         });
33 }
34 function getDayDiv(t){
35     var day=$(t).closest(".calendar-day");
36     if(day.length){
37     return day;
38     }else{
39     return $(t);
40     }
41 };
42 $(function () {
43     var calendarDiv = $('#S_Week').datebox().datebox('calendar')
44     calendarDiv.on("mouseover",function(e){
45         var t=getDayDiv(e.target)
46         if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){
47             t.addClass("calendar-nav-hover")
48             var parentElement = t.parent();
49             var childElements = parentElement.children();
50             childElements.each(function() {
51                 $(this).addClass('calendar-nav-hover')
52             });
53         }
54         }).on("mouseout",function(e){
55         var t=getDayDiv(e.target);
56         if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){
57         t.removeClass("calendar-nav-hover");
58         var parentElement = t.parent();
59             var childElements = parentElement.children();
60             childElements.each(function() {
61                 $(this).removeClass('calendar-nav-hover')
62             });
63         }
64       })
65     
66     $('#S_Week').datebox({
67         onShowPanel: function() {
68           // 在打开面板前进行一些预处理操作
69           var parentElement = $('.calendar-selected').parent();
70           var childElements = parentElement.children();
71           
72           childElements.each(function() {
73           $(this).addClass('calendar-selected')
74           });
75 
76         }
77       });
78 })

 

标签:function,parentElement,easyui,js,date,var,calendar,选择器,datebox
From: https://www.cnblogs.com/jiajiaxu/p/17967068

相关文章

  • JSON注解自定义格式解析
    在SpringBoot中,你可以通过自定义注解来格式化或转换属性值。以下是一个示例代码,演示如何实现这个过程:首先,定义一个注解@CustomFormat,用于标注需要格式化或转换的属性。该注解可以包含一个参数,用于指定格式化或转换的方式。importjava.lang.annotation.*;@Target(ElementType......
  • js对象属性名表达式
    let propKey='foo'; let obj={  [propKey]:true,  ['a' +'bc']:123};通过先定义变量,在字面量对象中添加属性时,属性名为变量时加上中括号包裹,也可以为表达式来表示......
  • nodeJS搭建简单socket测试
    背景:有个小伙伴使用vue连不上公司的socket,但又要想做连接测试。网上搜索,安装node环境,其实就是下载个安装包:https://nodejs.org/en/download,安装成功后,配置一下环境变量,配置后win+R,输入cmd打开命令框,输入node-v,可以正常输出node的版本号,说明node安装完成。然后就是如何创建一个n......
  • csharp c# http request get post put delete header respons json 网络请求
    C#中如何模拟一个post请求使用HttpClient代替。以下是修改后的代码示例:usingSystem;usingSystem.Net.Http;usingSystem.Text.Json;classHttpPostExample{privateasyncTask<string>HttpPost(stringUrl,objectpostData){stringpostDataStr=J......
  • python中json.dumps() 与json.dump(),json.load()与json.loads()区别?
    json.dumps()将Python对象转换为JSON字符串,并返回该字符串。而json.dump()将Python对象转换为JSON字符串,并将该字符串写入文件。json.dumps()接受一个Python对象作为参数,而json.dump()接受两个参数:一个Python对象和一个写入数据的文件对象。json.dump()生......
  • 【题解】gym103743 (2022 JSCPC)
    A.PENTAKILL!考虑直接模拟,规则就是一个人将其他人全部都击杀,并且中间没有重复击杀。code:#include<bits/stdc++.h>usingnamespacestd;map<string,vector<string>>st;intn;stringa,b;intmain(){cin>>n;for(inti=1;i<=n;++i){ci......
  • js文件过大如何提速
    直接上干货,太大就让他变小,据不可靠统计gzip压缩可以让js体积减少5倍+,na那么理论优化速度为5倍+,前端压缩完js为gzip格式配合nginx设置解析gzip让浏览器解析gzip就大功告成了。上两篇干活内容,具体操作请看以下链接:https://zhuanlan.zhihu.com/p/530959154https://blog.csdn.net/y......
  • JS - 文件下载
    文件下载1functiondownloadFile(){constlink=document.createElement('a');link.style.display='none';link.setAttribute('href',file.sourceUrl);//设置下载地址link.setAttribute('download',file.fileNam......
  • 前端跨域三种解决方式(CORS、JSONP、代理跨域)
    什么是跨域?跨域是浏览器为了安全而作出的限制策略(所以服务端不涉及到跨域);浏览器请求必须遵循同源策略,即同域名、同端口、同协议;例如:http://www.abc.com到http://www.def.com的请求会出现跨域(域名不同)http://www.abc.com:3000到http://www.abc.com:3001的请求会出现跨域(端口不同......
  • 【nestjs】main.ts
    1.main.ts文件做了什么?核心文件,通过NestFactory.create创建应用程序实例,完成中间件、守卫、管道、异常过滤器、拦截器的注册。2.NestFactory.create(appModele,options?)做了什么?创建应用程序实例,该方法接受两个参数,第一个参数是一个根模块,第二个参数是一个可选的配置对象,......