My97DatePicker 按天 按周 按月 按季 按年查询 亲测有效

WdatePicker 实现年、季度、月、周、日、小时6种日期类型共用一个日期控件 1 HTML代码 <select id="dateType" onchange="setDateTimeDom()> <option value="1">年</option> <option value="2">季度</option> <option value="3">月</option> <option value="4">周</option> < 阅读详情

 http://www.cnblogs.com/kevin-zlg/p/4631413.html

        前台页面需要使用日期控件时,同事选择了My97DatePicker,功能还是挺强大的,在使用过程中需要实现按日、按周、按月、按季度、按年选择时间的功能。

控件自身提供了按日、按月和按年选择的功能,但是选择周和选择季度没有,鉴于方便,在选择周时就使用了选择日的状态,选择了日后再计算这一天所属的周的起始和结束日期。

在选择季度时,使用了选择月份的状态,选择月份后计算所属的季度的开始和结束日期。

        控件本身有很详细的帮助文档,页面http://www.my97.net/dp/demo/index.htm,关于控件的使用都可以参考官方的demo,而且可以在线看到效果,直观简单,就是公司里上网太不方便。

        这里记录几个发现的问题:

        1. 控件可以在onfocus或者onclick事件中创建,实现弹出时间选择框的功能,但是发现在使用onfocus时,当选择了一次时间后,焦点默认还是在此输入框上,所以当想更改时间时,需要改变焦点再重新点击此输入框,操作上有问题,所以如果是实现点击弹出时间选择框的话,还是使用onclick事件比较合理。

        2. $dp.$DV方法文档上说是返回时间字符串,但是实际使用中返回的是控件自定义的时间对象,有y、M、d、H、m、s属性,分别返回年、月、日、时、分、秒。所以为了获取到字符串,不得不自己写转换函数。

 

        下面是这个小功能的核心代码,里面用到的关于控件的方法都是比较常用的,在公司里上网环境查控件的文档实在是太麻烦了,以后我自己看下下面的代码,基本的使用应该都木有问题了。

代码:

<table >
    <tr>
        <th>查询时间类型</th>
        <td>
            <select id="selType" name="dept" style="width: 150px;" >
                <option value="1">按日</option>
                <option value="2">按周</option>
                <option value="3">按月</option>
                <option value="4">按季</option>
                <option value="5">按年</option>
            </select>
        </td>
        <th>统计时间</th>
        <td>
            <input id="starttime" class="Wdate" onclick="createWdatePicker();" />
        </td>
    </tr>
    <tr>
        <th>选中时间段</th>
        <td>
            <input id="showstarttime" type="text" readonly="readonly" />
        </td>
        <th>到</th>
        <td>
            <input id="showendtime" type="text" readonly="readonly" />
        </td>
    </tr>
</table>
<script type="text/javascript" >
    /**
     选择时间的输入框被选中时,创建datepicker控件
     根据设置不同dateFmt 格式,使空间支持选择日,周,月,季,年
     */
    function createWdatePicker() {

        var type = $("#selType").val();

        if (type == 1) {//按日
            WdatePicker({
                readOnly : true,
                dateFmt : 'yyyy-MM-dd',
            onpicked : pickTime,
                isShowWeek : true,
                maxDate : '%y-%M-%d'
        });
        } else if (type == 2) {//按周
            WdatePicker({
                readOnly : true,
                dateFmt : 'yyyy-MM-dd',
            onpicked : pickTime,
                isShowWeek : true,
                maxDate : '%y-%M-%d'
        });
        } else if (type == 3) {//按月
            WdatePicker({
                readOnly : true,
                dateFmt : 'yyyy-MM',
            onpicked : pickTime,
                isShowWeek : true,
                maxDate : '%y-%M-%d'
        });
        } else if (type == 4) {//按季
            WdatePicker({
                readOnly : true,
                dateFmt : 'yyyy-MM',
            onpicked : pickTime,
                isShowWeek : true,
                maxDate : '%y-%M-%d'
        });
        } else if (type == 5) {//按年
            WdatePicker({
                readOnly : true,
                dateFmt : 'yyyy',
            onpicked : pickTime,
                isShowWeek : true,
                maxDate : '%y-%M-%d'
        });
        }

    };

    /**
     控件时间选中后,onpicked 事件对应的方法
     根据不同的选择类型:日周月季年,计算最终选中的时间段
     */
    function pickTime() {

        var type = $("#selType").val();

        if (type == 1) {//按日
            //获取控件选择的时间,格式是根据设置的dateFmt : 'yyyy-MM-dd'
            var datetime = $dp.cal.getDateStr();
            $("#showstarttime").val(datetime + " 00:00:00");
            $("#showendtime").val(datetime + " 23:59:59");
        } else if (type == 2) {//按周
            var datetime = $dp.cal.getDateStr();
            //获取星期几,控件提供的方法
            var dstart = -$dp.cal.getP('w', 'w');
            var dend = dstart + 6;
            //计算一周的开始日期和结束日期,这个方法文档说返回的是字符串,但是实际中返回的是控件定义的时间对象,所以后面得自己转换成字符串
            var datestart = $dp.$DV(datetime, {
                d : dstart
            });
            var dateend = $dp.$DV(datetime, {
                d : dend
            });

            $("#showstarttime").val(dateToString(datestart) + " 00:00:00");
            $("#showendtime").val(dateToString(dateend) + " 23:59:59");
        } else if (type == 3) {//按月
            var y = $dp.cal.getP('y', 'yyyy');
            var M = $dp.cal.getP('M', 'M');

            var d = new Date(y, M, 0);

            var datestart = {};
            datestart.y = y;
            datestart.M = M;
            datestart.d = 1;
            var dateend = {};
            dateend.y = y;
            dateend.M = M;
            //获取月的最后一天
            dateend.d = d.getDate();

            $("#showstarttime").val(dateToString(datestart) + " 00:00:00");
            $("#showendtime").val(dateToString(dateend) + " 23:59:59");

        } else if (type == 4) {//按季
            var y = $dp.cal.getP('y', 'yyyy');
            var M = $dp.cal.getP('M', 'M');

            //计算季度的开始月份和结束月份
            var startM = parseInt((M - 1) / 3) * 3 + 1;
            var endM = startM + 2;

            var d = new Date(y, endM, 0);

            var datestart = {};
            datestart.y = y;
            datestart.M = startM;
            datestart.d = 1;
            var dateend = {};
            dateend.y = y;
            dateend.M = endM;
            //获取最后一个月的最后一天
            dateend.d = d.getDate();

            $("#showstarttime").val(dateToString(datestart) + " 00:00:00");
            $("#showendtime").val(dateToString(dateend) + " 23:59:59");

        } else if (type == 5) {//按年

            var y = $dp.cal.getP('y', 'yyyy');
            //这里可以直接字符串拼凑写死,但是为了格式统一,还是创建对象在转化吧
            var datestart = {};
            datestart.y = y;
            datestart.M = 1;
            datestart.d = 1;
            var dateend = {};
            dateend.y = y;
            dateend.M = 12;
            dateend.d = 31;

            $("#showstarttime").val(dateToString(datestart) + " 00:00:00");
            $("#showendtime").val(dateToString(dateend) + " 23:59:59");
        }

    };
    /**
     控件返回的时间对象转换成字符串输出
     控件的时间对象有y,M,d,H,m,s属性,分别返回年,月,日,时,分,秒
     */
    function dateToString(date) {
        var strdate = "";
        strdate = strdate + date.y + "-";
        var M = date.M >= 10 ? date.M : ("0" + date.M);
        strdate = strdate + M;
        var d = date.d >= 10 ? date.d : ("0" + date.d);
        strdate = strdate + "-" + d;
        return strdate;
    };
</script>
My97DatePicker 选择季度功能 项目需要通过My97DatePicker插件选择季度功能,在网上找了下基本都是一个人弄过但是分享的也不是很全面实现不了想要的功能,只好自己通过笨方法弄了个方便的版本。但是胜在能够实现。 立即下载

相关推荐

php实现按天数、星期、月份查询的搜索框

本文实例为大家分享了php实现按天数、星期、月份查询的搜索框,搜索时候展示数据的统计图,主要展示图形的效果,供大家参考,具体内容如下 1.ajax.php <?php $year = $_GET['y']; if(!isset($_GET['m'])){ $month=1; }else{ $month = $_GET['m']; } $week_arr = getMonthWeekArr($year, $month); echo json_encode($week_arr); die; /**

my97DatePicker选择年、季度、月、周、日

My97DatePicker是一款非常灵活好用的日期控件。使用非常简单。  下面总结下使用该日历控件选择年、季度、月、周、日的方法。 1、选择年 &lt;input id="d1212" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyy年'})"/&gt;   2、选择季度: &lt;input id="d

lipeng的博客 1079

利用ORCAD/pspice 仿真分析电路的幅度相位谱

利用ORCAD的pspice仿真分析电路的相位谱1.介绍2.搭建电路原理图3.建立仿真文件,进行交流分析4.仿真、查看输出5.总结 1.介绍 orcad配合pspice一直是电路原理图绘制和仿真的主要工具,pspice工具提供了诸如暂态分析、直流分析、交流分析等多个工具。学校主要教的是multisim,对orcad讲得很少,最进要利用orcad对运放构成的电路的频响、相移特性进行分析,发现资料幅度...

qq_40011737的博客 1万+

My97DatePicker日历控制按日 按周和按月选择

My97DatePicker日历控制按日 按周和按月选择

jrrfgj的博客 1249

Spring AI Alibaba Skill 实战:定义、注册与渐进式披露的企业级落地

摘要:很多团队在接入大模型时,第一步做到的是“能对话”,第二步遇到的瓶颈却是“不能可靠执行”。Skill 的本质不是给模型多几个函数,而是把企业系统中的可控能力,以可治理、可审计、可扩展的方式交给 Agent。本文围绕 Spring AI Alibaba Skill 的定义、注册与渐进式披露,结合电商客服与售后场景,系统讲清楚其底层原理、架构设计、生产级实现、高并发治理与工程实践。@Component@Tool(description = "根据订单号查询订单状态、支付状态和物流状态")扫描包含。

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 623

浅析ArcGis中的软件——ArcMap、ArcScene、 ArcGlobe、ArcCatalog

ArcMap:是集空间数据显示、矢量数据编辑、冲突数据检查(拓扑检查)、查询检索(地理编码)、统计(字段属性表)、报表生成、空间分析(ArcGIS Spatial Analyst)和高级制图(制图表达)等众多功能干一体的桌面应用平台软件。而且提供所见即所得的符号编辑器,令用户可以随心所欲地生成任意复杂的点、线、面符号。所支持的空间数据格式包括Arclnfo coverages、ESRI shapefiles、ArcSDE lavers、DXF、DWG、DGN、常见的图像格式、GRIDs、TINs等。

lxlmycsdnfree的博客 6563

时间控件:my97DatePicker选择年、季度、月、周、日

一直以来,用的最多的就是my97DatePicker获得年月日的方法,今天突然逛到了这篇文章,留下来,以备以后使用自己写的一个:获取年月,并从下个月开始计算 [html] view plain copy print?<asp:TextBox ID=“txt_date_1” runat=“server” Width=“90%” onClick=“WdatePicker({dateFmt:’yyyy-M

Denny辉的博客 2万+

2.4G/4G天线共存方案:Air8101多频段隔离设计实战(附波长计算表)

本文深入探讨了物联网设备中Wi-Fi 2.4GHz与4G LTE天线共存设计的实战方案。针对B40与2.4G频段紧邻带来的干扰挑战,文章系统性地提出了空间隔离、PCB布局优化、结构设计三重防线,并提供了关键的波长计算工具与系统级验证Checklist,旨在帮助工程师将多频段隔离设计从“玄学”变为可执行的工程规范。

weixin_29197051的博客 389

日期插件My97DatePicker的基本使用

记得初学java的时候,最讨厌的事情就是日期转化和日期格式判断。今天的我同样遇到了这个问题,注册的时候需要用户输入生日,这时候才想到,我为什么不用插件呢?总是想着自己手工编码来实现一切自己想要的功能,那是不可能的,真要自己手工实现所有的功能,那首先要自己手工编写一个jdk出来吧。好吧,是我太固执……     言归正传,这个效果图就是标题中所提到的日期插件                    

GNODIAD的优快云博客 913

MC33PT2000控制详解一:PT2000 Dev Studio工具的使用

MC33PT2000共可控制6个高低端(如控制6个高压喷油器),1个高低端(如控制高压油泵)和DC-DC模块(如升压到65V).

m0_69929716的博客 1353

分辨率太小 / Retina 模糊 / 全屏异常:一篇解决 VMware Fusion + Kali 显示问题(Xfce & GNOME 通用)

本文提供了在Mac(尤其是Retina屏)上运行Kali Linux时常见显示问题的完整解决方案。主要解决三类问题:分辨率太小、Retina屏模糊和全屏异常。核心思路是先安装open-vm-tools-desktop并重启,这是90%问题的根源。然后根据不同问题分别处理:调整DPI/Scale解决字体大小,避免双重缩放导致的模糊,以及通过窗口拉伸和重启解决全屏异常。文章还给出了针对Xfce和GNOME的最佳配置建议,并强调调试完成后应创建快照以便快速恢复。最后提供了速查表,方便用户快速参考关键步骤。

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 874

通过My97DatePicker、Jquery、Spring Boot实现年、季度、月的选择

一、版本 My97DatePicker: 4.8; Jquery: 1.11.3; Spring Boot:1.5.17.RELEASE. 二、项目目录结构 三、上代码 test.html(主页面) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"...

plxddyxnmd的博客 1054

YOLOv8 架构改造实战:添加 P2 小目标检测头与 P6 超大目标检测头

上采样是指将特征图的空间尺寸变大(例如从 20×20 → 80×80),用来提升图像的分辨率。常见于解码器结构或特征融合中。下采样是指将特征图的空间尺寸缩小(例如从 256×256 → 128×128),通常用于减少计算量、提取更高级语义特征。操作目的方法尺寸变化上采样放大特征图插值算法变大(如2×)下采样压缩特征图、提取语义stride卷积等变小(如1/2)

FJN110的博客 574

My97DatePicker的基本时间格式的使用

一.下载My97DatePicker组件包下载地址:http://www.my97.net/dp/down.asp(官方下载地址)二.具体使用  1.在页面中引用该组件JS文件:  &lt;script type="text/JavaScript" src="My97DatePicker/WdatePicker.js"&gt;&lt;/script&gt; 2:源代码(仅供参考,具体情况,具体分析...

阿武刚巴得 1391

RAGFlow 系列教程 第三课:后端服务入口与请求生命周期

本文深入解析RAGFlow v0.25.0后端核心机制,重点介绍了Quart框架选型原因和服务启动流程。RAGFlow选择Quart作为Web框架,主要基于其异步能力对LLM调用的支持、Flask生态兼容性以及长响应超时处理优势。文章详细拆解了服务启动的8个关键步骤,从日志初始化到HTTP服务启动,并分析了配置加载、数据库初始化等核心环节。通过源码分析揭示了RAGFlow如何实现动态API注册、双重认证体系等关键技术点,为深入理解该系统的请求处理生命周期提供了基础。

weixin_43674738的博客 188

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

My97实现开始日期和结束日期只能在一周的范围之内

有时有些查询日期范围时间跨度不能超过一星期,可以灵活应用MY97的强大功能来实现   &lt;script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"&gt;&lt;/script&gt; 起始日期:&lt;input class="Wdate" type

bewithme的专栏 435

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mysql 日期函数 按天,按周,按月,按年分组 统计数据

在工作业务中常会使用mysql的日期函数,下面做一下关于这方面的sql整理: 1.内置日期函数 now(): 返回当前的日期和时间 unix_timestamp(): 返回自1970-01-01 00:00:00到当前时间的秒数差(时间戳) unix_timestamp(指定时间): 返回自1970-01-01 00:00:00到指定时间的秒数差(时间戳) from_unixtim(时间字段):...

smile radiantly 1392

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

按年查询?按月查询?按天查询?

在平常业务中,有时候,我们需要实现按年查询,按月查询以及按天查询,如此,在MySQL中,我们就需要使用到 date_format()函数,用来以不同的格式展示数据。 相关详情可以查看》https://www.w3school.com.cn/sql/func_date_format.asp ...

qq_42582773的博客 580

MySql按周,按月,按日分组统计数据、日期计算。并统计环比、同比

MySql按周,按月,按日分组统计数据 <!-- 按日查询 --> SELECT DATE_FORMAT(created_date,'%Y-%m-%d') as time,sum(money) money FROM o_finance_detail where org_id = 1000 GROUP BY time <!-- 按月查询 --> SELEC...

背离赤道、逆光而行 1万+

按周,按月,按日,按小时分组统计数据

[url]http://my.oschina.net/mjRao/blog/698641[/url] 遇到了,总结,仅仅是个搬运工! 来自陶伟基Wiki select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m') months,count(caseid) count from tc_case gr

竹林幽深 707

前端日期选择器--只选择年或者年月的My97

用法说明:只需要调用一个js<script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"></script>,解压出来的文件夹需要跟html文件同级放置 1,只调用年月日:onClick="WdatePicker()"; <script lang...

得已 1万+

element ui datepicker时间控件实现范围选择周,季,年。

官网elementui仅有日和月的范围选择控件。所以开发了周季年。

a2014528883的博客 1万+

手撸Element源码,完善日期选择器功能,支持范围选择器周、季、年

根据业务逻辑手撸Element源码,针对日期选择器进行剖析,完善功能,并且根据日常常用需求新增范围选择器周、季、年

伶俜Monster 6986

日期选择器(年、季、月、周)展示

日期选择器(年、季、月、周)展示

前路漫漫,少年,继续披荆斩棘! 5676

JQuery日历插件My97DatePicker日期范围限制

My97DatePicker是一个非常优秀的日历插件,不仅支持多种调用模式,还支持日期范围限制。 常规的调用比较简单,如下所示:    1 input class="Wdate" id="d1" onclick="WdatePicker()" />  下面重点说明日期范围限制: 1)静态限制     你可

kunkun378263的专栏 1023

对于my97日期控件的实践结果,欢迎拍砖

my97 http://my97.cnblogs.com/ My97这个东东,功能上真的很强。从简单的日月年时分秒,周选,或是月选,或是时分选;默认日期;日期范围,这些常用的功能全部都有得支持,其他的功能还有一大堆。 但是很大的问题在于,my97的问题很多: 最大莫过crossframe改为true的时候,很多功能参数都实际上起不了作用,只能提供一个默认的效果(autopick、校验类...

iteye_11602的博客 219
上一篇: my97DatePicker选择年、季度、月、周、日
下一篇: Bootstrap Table拖动改变列宽的方法
MinMax_CC
博客等级 码龄9年 15粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值