jeDate 日期控件

写在前面的话:

最近在做一个日期范围的功能,研究了一个12306网站的日期范围选择,他用的是jcalendar.js,没有直接在日历插件里面做判断开始时间小于结束时间

而是自己在代码里面做了判断如下:

 1 // 初始化页面的选择框
 2     function initQueryInput(newStartDate,newEndDate) {
 3         $(‘#queryStartDate‘).focus(function(){
 4             $(‘#queryStartDate‘).jcalendar({
 5                 startDate : newStartDate,
 6                 endDate : newEndDate,
 7                 onpicked:function(){
 8                     var startDateStr=$(‘#queryStartDate‘).val();
 9                     var endDateStr=$(‘#queryEndDate‘).val();
10                     var startDate=new Date(Date.parse(startDateStr.replace(/-/g, "/")));
11                     var endDate=new Date(Date.parse(endDateStr.replace(/-/g, "/")));
12                     if(startDate.getTime()>=endDate.getTime()){
13                         $(‘#queryEndDate‘).val(startDateStr);
14                     }
15                 }
16             });
17         });
18
19         $(‘#queryEndDate‘).focus(function(){
20             $(‘#queryEndDate‘).jcalendar({
21                 startDate : newStartDate,
22                 endDate : newEndDate,
23                 onpicked:function(){
24                     var startDateStr=$(‘#queryStartDate‘).val();
25                     var endDateStr=$(‘#queryEndDate‘).val();
26                     var startDate=new Date(Date.parse(startDateStr.replace(/-/g, "/")));
27                     var endDate=new Date(Date.parse(endDateStr.replace(/-/g, "/")));
28                     if(startDate.getTime()>=endDate.getTime()){
29                         $(‘#queryStartDate‘).val(endDateStr);
30                     }
31                 }
32             });
33         });
34     }
35
36     //获取日期
37     function getYears(number){
38         var data=new Date();
39         var year=data.getFullYear()+number;
40         var queryDate=year+"-01-"+"01";
41         return queryDate;
42     }

这种方式也可以!

后面自己又搜到了一个比较好的日历控件jeDate.js 它是直接就在控件里面做了判断,选择结束日期小于开始日期的都是灰色不能选择的,感觉不错先整理下来:

官网:http://www.jayui.com/jedate/index.html#13

jeDate除了包含初始化日期加减N、日期标注点、输入框可以直接输入时间、设定年月(YYYY-MM)、日期范围限制、开始日期设定、自定义日期格式、时间戳转换、当天的前后若干天返回、时分秒选择、智能响应、自动纠错、节日识别,操作等常规功能外,根据不同的日期格式,显示不同内容,还拥有更多趋近完美的解决方案。

注意事项

1、解压后,将jedate整个文件放至您项目的任意目录
2、控件不支持选周
浏览器兼容,下面是我们的主要兼容目标1、IE8 或者 IE8以上 (Windows), IE8以下浏览器不兼容
2、Safari (Mac)
3、Chrome (Windows, Mac, Linux)
4、Firefox (Windows, Mac, Linux)
5、谷歌内核(webkit)浏览器,如360浏览器,搜狗浏览器,QQ浏览器等

使用方法

 1 普通方法调用方式
 2
 3 <script type="text/javascript">
 4 $("#test").jeDate({
 5     format:"YYYY-MM-DD",
 6     isTime:false,
 7     minDate:"2014-09-19 00:00:00"
 8 })
 9 //或者为这样的
10 $.jeDate("#test",{
11     format:"YYYY-MM-DD",
12     isTime:false,
13     minDate:"2014-09-19 00:00:00"
14 })
15
16 requirejs方法调用方式
17
18 requirejs.config({
19     paths : {
20         jquery : ‘js/jquery-1.7.2‘,
21         jedate : ‘jedate/jquery.jedate‘
22     }
23 });
24 require([ ‘jquery‘,‘jedate‘],function($) {
25     $("#test").jeDate({
26         format:"YYYY-MM-DD",
27         isTime:false,
28         minDate:"2014-09-19 00:00:00"
29     })
30     //或者为这样的
31     $.jeDate("#test",{
32         format:"YYYY-MM-DD",
33         isTime:false,
34         minDate:"2014-09-19 00:00:00"
35     })
36 })
37 </script>

核心方法(配置):jeDate(options)

1 options是一个对象,它包含了以下key: ‘默认值‘

skinCell:"jedateblue",                //日期风格样式,默认蓝色
format:"YYYY-MM-DD hh:mm:ss",         //日期格式
minDate:"1900-01-01 00:00:00",        //最小日期
maxDate:"2099-12-31 23:59:59",        //最大日期
insTrigger:true,                      //是否为内部触发事件,默认为内部触发事件
startMin:"",                          //清除日期后返回到预设的最小日期
startMax:"",                          //清除日期后返回到预设的最大日期
isinitVal:false,                      //是否初始化时间,默认不初始化时间
initAddVal:[0],                       //初始化时间,加减 天 时 分
isTime:true,                          //是否开启时间选择
hmsLimit:true,                        //时分秒限制
ishmsVal:true,                        //是否限制时分秒输入框输入,默认可以直接输入时间
isClear:true,                         //是否显示清空
isToday:true,                         //是否显示今天或本月
clearRestore:true,                    //清空输入框,返回预设日期,输入框非空的情况下有效
festival:false,                       //是否显示农历节日
fixed:true,                           //是否静止定位,为true时定位在输入框,为false时居中定位
zIndex:2099,                          //弹出层的层级高度
marks:null,                           //给日期做标注
choosefun:function(elem, val) {},     //选中日期后的回调, elem当前输入框ID, val当前选择的值
clearfun:function(elem, val) {},      //清除日期后的回调, elem当前输入框ID, val当前选择的值
okfun:function(elem, val) {},         //点击确定后的回调, elem当前输入框ID, val当前选择的值
success:function(elem) {},            //层弹出后的成功回调方法, elem当前输入框ID

使用对象

可以使用在文本框与非文本框上:如 input 、 DIV,建议使用 “input” 标签

1 <input id="indate" type="text" placeholder="请选择"  readonly>
2 <div id="dateinfo"><div>

支持格式类型

1、 YYYY-MM-DD hh:mm:ss
2、 YYYY-MM-DD hh:mm
3、 YYYY-MM-DD
4、 YYYY-MM
5、 YYYY
6、 hh:mm:ss
7、 hh:mm

功能演示(更多请参考官网)

当格式为 hh:mm:ss 或者 hh:mm 的时候,今天按钮就被隐藏了,没有秒的话就只显示时分,没有只显示时的!

 1 【返回日期】
 2 $.nowDate(0), //0代表今天,-1代表昨天,-2代表前天,1代表明天,2代表后天,以此类推
 3
 4 【时间戳转换】
 5 $.nowDate("1460641190")  得到 2016-04-14 21:39:50
 6
 7 【绑定ID】
 8 <input class="workinput wicon" id="test1" type="text" placeholder="YYYY年MM月DD日 hh:mm:ss" readonly>
 9 <input class="workinput wicon mr25" id="texthms" type="text" placeholder="hh:mm:ss"  readonly>
10
11 【jeDate调用】
12 //点击显示(YYYY年MM月DD日 hh:mm:ss)格式
13 $("#ymd01").jeDate({
14     isinitVal:true,
15     festival: true,
16     format: ‘YYYY年MM月DD日 hh:mm:ss‘
17 });
18
19 //点击显示(YYYY年MM月DD日 hh:mm)格式
20 $.jeDate("#ymd02",{
21     format:"YYYY年MM月DD日 hh:mm",
22     isTime:true,
23     festival: true,
24     minDate:"2014-09-19 00:00:00"
25 })
26
27 //点击显示 YYYY年格式
28 $("#ymnian").jeDate({
29     isinitVal:true,
30     format:"YYYY年"
31 });
32
33 //点击显示 时分秒(hh:mm:ss)格式
34 $("#hm01").jeDate({
35     isinitVal:true,
36     format:"hh:mm:ss"
37 });
38
39 //点击显示 时分(hh:mm)格式
40 $.jeDate("#hm02",{
41     format:"hh:mm"
42 });

日期风格样式

skinCell,风格调用,CSS中增加了3种风格(红、绿、蓝)

 1 风格样式(jedateblue、jedatered、jedategreen)
 2 //蓝色风格
 3 $("#skinblue").jeDate({
 4     isinitVal:true,
 5     skinCell:"jedateblue",
 6     format: ‘YYYY年MM月DD日 hh:mm:ss‘
 7 });
 8 //红色风格
 9 $.jeDate("#skinred",{
10     skinCell:"jedatered",
11     format: ‘YYYY年MM月DD日 hh:mm:ss‘
12 });
13 //绿色风格
14 $("#skingreen").jeDate({
15     skinCell:"jedategreen",
16     format: ‘YYYY年MM月DD日 hh:mm:ss‘
17 });

开始日期与结束日期

 1 【自定义日期格式】
 2 <span class="wstxt">开始日期:</span><input type="text" class="workinput wicon mr25" id="inpstart" readonly>
 3 <span class="wstxt">结束日期:</span><input type="text" class="workinput wicon mr25" id="inpend" readonly>
 4 <script>
 5 var start = {
 6     format: ‘YYYY-MM-DD hh:mm:ss‘,
 7     minDate: $.nowDate(0), //设定最小日期为当前日期
 8     isinitVal:true,
 9     festival:true,
10     ishmsVal:false,
11     maxDate: ‘2099-06-30 23:59:59‘, //最大日期
12     choosefun: function(elem,datas){
13         end.minDate = datas; //开始日选好后,重置结束日的最小日期
14     }
15 };
16 var end = {
17     format: ‘YYYY年MM月DD日 hh:mm:ss‘,
18     minDate: $.nowDate(0), //设定最小日期为当前日期
19     festival:true,
20     maxDate: ‘2099-06-16 23:59:59‘, //最大日期
21     choosefun: function(elem,datas){
22         start.maxDate = datas; //将结束日的初始值设定为开始日的最大日期
23     }
24 };
25 $(‘#inpstart‘).jeDate(start);
26 $(‘#inpend‘).jeDate(end);
27
28 //或者是
29 $.jeDate(‘#inpstart‘,start);
30 $.jeDate(‘#inpend‘,end);
31 </script>

 

时间: 2024-10-12 21:34:12

jeDate 日期控件的相关文章

jeDate日期控件精确到秒

案例下载 链接: https://pan.baidu.com/s/1m7eEW6K6Bt1t-0OjVY_Wxw 密码: xmei <script type="text/javascript" src="jedate/jedate.js"></script> <input class="datainp" id="dateinfo" type="text" placeholder

python selenium 处理时间日期控件(十五)

测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现. 1.首先我们看一下如何通过层级定位来操作时间控件. 通过示例图可以看到,日期控件是无法输入日期,点击后弹出日期列表供我们选择日期,自己找了一个日期控制演示一下,通过两次定位,选择了日期 #-*- coding:utf-8 -*- import time from selenium import webdriver driver = webdriver.Chrome() driver.get

ux.form.field.GridDate 支持快速选择日期的日期控件

效果如图,亲测6.2.1版本可用 1 /** 2 *支持快速选择日期的日期控件 3 */ 4 Ext.define('ux.form.field.GridDate', { 5 extend: 'Ext.form.field.Date', 6 alias: 'widget.gridDateField', 7 requires: ['ux.picker.GridDate'], 8 pickerGrid: { 9 store: { 10 //默认配置 11 data: [{ 12 value: 30,

selenium webdriver自动化对日期控件的处理

用JS去掉日期输入框的readOnly属性. 代码如下: ------------------------------------------------------------------------------------- String js="document.getElementById('dateTimeId').removeAttribute('readOnly');document.getElementById('dateTimeId').setAttribute('value'

[整理]通过AngularJS directive对bootstrap日期控件的的简单包装

最近项目上了AngularJS,而原来使用的日期控件的使用方式也需要改变,于是开始了倒腾,看来写官方的例子,可以使用AngularJS的directive做简单的处理,这样在html里直接使用申明的的形式即可使用了. <!doctype html> <html ng-app="datepickerApp"> <head> <link type="text/css" rel="stylesheet" hre

mui 时间日期控件(浏览器上无法查看,在手机端可以点击)

<head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title></title> <link href="css/mui.mi

12 Python+selenium对日期控件进行处理(采用执行JS脚本)

[环境信息] Python34+IE+windows2008 [说明] 1.对于日期控件,没有办法通过定位元素再直接传值的方式处理.可以采用执行JavaScript处理. PS:还要去学学js怎么写,不然要用的时候就只有到处copy了. [示例] 1.对于如下格式的日期控件需要用JS处理. 2.处理方式:通过driver.execute_script(js)执行. #问题消除时间,调用JS的当前时间 js = "function getCurrentDate() {" " v

jquery日期控件使用,起止时间

1.下载jQuery核心文件,datepicker是轻量级插件,只需jQuery的min版本就行了,然后到官网http://jqueryui.com/download下载jquery-ui压缩包(可以选择喜欢的theme),里面就包含对datepicker的支持,当然您也可以网站http://marcgrabanski.com/pages/code/jquery-ui-datepicker下载datepicker,包括ui.core.js和ui.datepicker.js. 2.在HTML中引用

My97DatePicker日期控件实现按日、周、月、季、年选择时间段

 http://www.cnblogs.com/kevin-zlg/p/4631413.html 前台页面需要使用日期控件时,同事选择了My97DatePicker,功能还是挺强大的,在使用过程中需要实现按日.按周.按月.按季度.按年选择时间的功能. 控件自身提供了按日.按月和按年选择的功能,但是选择周和选择季度没有,鉴于方便,在选择周时就使用了选择日的状态,选择了日后再计算这一天所属的周的起始和结束日期. 在选择季度时,使用了选择月份的状态,选择月份后计算所属的季度的开始和结束日期. 控件本身