日期控件

简介:

国产的My97日期控件 http://www.my97.net/dp/index.asp 

使用引入js即可

Java代码   收藏代码
  1. <script language="javascript" type="text/javascript" src="datepicker/WdatePicker.js"></script>  

选择第一个日期的时候,第二个日期选择框自动弹出
日期从: 至 
注意: 下面第一个控件代码的写法

Java代码   收藏代码
  1. <input type="text" class="Wdate" id="d4321" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4322\',{d:-1});}'})"/>  
  2. <input type="text" class="Wdate" id="d4322" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4321\',{d:1});}'})"/>  

使用 $dp.$D 函数 可以将日期框中的值,加上定义的日期差量:
两个参数: id={字符类型}需要处理的文本框的id值 , obj={对象类型}日期差量 
日期差量用法: 
属性y,M,d,H,m,s分别代表年月日时分秒
如 
为空时,表示直接取值,不做差量(示例4-3-1中的参数就是空的)
{M:5,d:7} 表示 五个月零7天
{y:1,d:-3} 表示 1年少3天
{d:1,H:1} 表示一天多1小时

Java代码   收藏代码
  1. <input type="text" id="readable_date" class="Wdate" value="2013-01-15" onFocus="WdatePicker({onpicking:changeFun})"/>  
  2. function changeFun(dp){  
  3.     if(dp.cal.getDateStr() !=dp.cal.getNewDateStr()){  
  4.         initQuota();  
  5.     }  
  6. }  

 

JSCal2比My97漂亮很多不敢独享http://www.dynarch.com/projects/calendar/

该日历控件乱码解决必须加入charset="utf8"来转码,才能功能解决乱码 如:

Java代码   收藏代码
  1. <script src="src/js/lang/jp.js" charset="utf8"></script>  
  2. <script src="src/js/lang/cn.js" charset="utf8"></script>  

在项目中使用的时候,需要用到年/月/日/小时/分钟,,但是一直没有办法正确初始化,比如当前时间是14:30, 但是日历是按世界时间显示,也就是说显示成了6:30 。 (要正确设置电脑的时区如:GMT+8:00 beijing)

解决方法是增加onChange事件,如下:

Java代码   收藏代码
  1. <input id="calendar-inputField" /><button id="calendar-trigger">...</button>  
  2. <script>  
  3. Calendar.setup({  
  4.     trigger    : "calendar-trigger",  
  5.     inputField : "calendar-inputField",  
  6.     dateFormat: "%Y-%m-%d",    
  7.     onTimeChange : updateFields , //外定义方法  
  8.     onChange : function(){  
  9.          this.setHours(new Date().getHours());  
  10.          this.setMinutes(new Date().getMinutes());  
  11.     }  
  12.     onSelect: function() { this.hide() },  
  13.     showTime: false  
  14. });  
  15. function updateFields (cal) {  
  16.     var date = cal.selection.get();  
  17.     if (date) {  
  18.         date = Calendar.intToDate(date);  
  19.         document.getElementById("f_date").value = Calendar.printDate(date, "%Y-%m-%d"+" "+cal.getHours()+"-"+cal.getMinutes());  
  20.     }  
  21.     document.getElementById("f_hour").value = cal.getHours();  
  22.     document.getElementById("f_minute").value = cal.getMinutes();  
  23. };  
  24. </script>  

除此之外,把chargetime的输入框初始化为当前事件。

Java代码   收藏代码
  1. <td>  
  2. <input style="text-align: center" readonly="true" value="2010-10-05" name="date" id="f_date"/>  
  3. </td>  
  4. <td>  
  5. <input style="text-align: center" readonly="true" name="hour" id="f_hour" size="2" />  
  6. </td>  
  7. <td>:</td>  
  8. <td>  
  9. <input style="text-align: center" readonly="true" name="minute" id="f_minute" size="2" />  
  10. </td>  

 

Js代码   收藏代码
  1. <link rel="stylesheet" href="calendar/css/jscal2.css" />  
  2. <link rel="stylesheet" href="calendar/css/border-radius.css" />  
  3. <!--上面两个css文件是必须引入的-->  
  4. <link rel="stylesheet" href="calendar/css/reduce-spacing.css" />  
  5. <!--reduce-spacing.css不是必须的,引入该文件能使日历以一种紧凑的方式显示,实际效果就是日历变小了。-->  
  6. <link title="Gold" type="text/css" rel="stylesheet" href="calendar/css/gold/gold.css" />  
  7. <!--这个是日历的皮肤文件,这一款本人觉得比较cool,下载下来默认还有其他几款皮肤,可以在calendar/css文件夹下找到,引入相应css后就能应用。-->  
  8. <script src="calendar/js/jscal2.js"></script>  
  9. <script src="src/js/lang/en.js" charset="utf8"></script>  
  10. <!--en.js是语言文件,该日历支持语言繁多,当然是支持中文的。如果引入全部语言文件,日历还能根据操作系统的语言自动选择语言文件,蛮智能的。-->  
  11.   
  12. <form method="post" action="">  
  13. <input type="text" name="date" id="date" />  
  14. <!--下面这段脚本初始化一个日历对象,没有这段脚本日历将无法运行。-->  
  15. <script type="text/javascript">  
  16. new Calendar({  
  17.     inputField: "date"//date对应输入日期的地方,这里只id为date的input输入框  
  18.     trigger: "date",//trigger指点击后弹出日历的对象,这里定位id是date的input框  
  19.     dateFormat: "%Y-%m-%d %H:%M:%S",//定义日期显示格式。  
  20.     weekNumbers: true,//设为true则在日历左侧显示星期数  
  21.     reverseWheel:true,  
  22.     onSelect: function() { this.hide() }//这段代码是为了让用户在日历上选择日期后日历能自动隐藏  
  23. });  
  24. </script>  
  25. </form>   

这个例子使用了popup模式,与官方给出的例子稍有区别,官方的例子通常都在input旁边有一个按钮,也就是trigger,点这个按钮就能弹 出一个日历,但经过试验这种方式在表单中并不好使,如果将带着额外trigger的input放到<form></form> 中,日历就会失效。因此将input field和trigger合二为一,实际效果是点击input输入框就会弹出日历,这样就不用担心用户手动向input中输入非法数据的问题了。

为了更好的使用该日历,下面附上日历的属性列表。

  • animation — 默认为true(IE6除外),如果传递true给该属性,就会强制所有浏览器(包括IE6)应用动画,传递false则所有浏览器都禁用动画。
  • cont —内联显示的日历的容器(对popup类型无效),将要显示日历的容器(如div等)的ID传递给此属性,则日历将在相应容器中以内敛方式显示(即日历在刷新页面后直接显示,popup类型则必须点击trigger后才显示日历)。
  • bottomBar — 布尔类型,默认值true。在底部显示一个带有“Today”按钮的工具条。
  • date — 日历默认显示的日期。
  • fdow — 一周的第一天,默认日期定义在各个语言文件中。例如传递0给属性指一周的从周日开始,传递1则是从周一开始,以此类推。
  • min — 日历可以选择的最早的日期.
  • max — 与min配合使用,表示日历可以选择的最大日期。
  • reverseWheel — 默认为false。如果想反转鼠标滚轮滚动时日历的变化方向,设置此项为true。(JsCAL可以滚动滚轮控制日历翻页。)
  • selectionType – 默认SEL_SINGLE,只能选择一个日期。设为SEL_MULTIPLE的话就能选择多个日期。
  • selection —设置日历初始化时默认选中的日期。在SEL_SINGLE模式下可以设置默认选中当前日期,在SEL_MULTIPLE 模式下可以设置默认选中一个时间段。
  • w eekNumbers —默认false。设置为true就会在左侧多出一栏显示周数。
  • c heckRange — 默认为false。当你开启了范围选择,但又不希望用户可以选择已被禁止的日期,那么开启此选项。
  • a lign — 默认的位置选项,仅针对popup类型。
  • inputField — 这是一个与input关联的ID,仅针对popup类型,日期将会显示在与这个ID关联的input输入框中。
  • trigger — 按钮元素 (或其他任何元素)的ID,点击这个元素可以显示日历,仅针对popup类型这是onclick时间的钩子函数。
  • dateFormat — 日期格式化,以字符串形式格式化日期和时间的显示形式。
  • opacity — 透明度设置。0为不透明,1、2、3则会增加透明度。IE浏览器默认是1,其他浏览器默认是3。透明度过高会显著降低程序再IE浏览器中的执行速度。
  • titleFormat — 定义日历中日期的显示形式。默认是“b% %Y”,显示形式如“April 2010”。
  • showTime — 默认为false。显示时间选择器,设置为true会显示24小时的时间选择器,设置为12则显示带有am/pm的12小时时间选择器。
  • timePos — 时间选择器在底部栏目中的位置,默认是“right”,即在“Today” 按钮的右侧,设置为“left”就会出现在“Today”的左侧。
  • time — 日历时间选择器中显示的默认时间。默认显示当前时间,如果要改变默认时间,可以传递一个格式为“HHMM”d的整数,比如要显示9:45 pm,则传递2145in。
  • minuteStep — 分钟增长和减少的步长。
  • onSelect — 选择日期后要调用的函数。
  • onChange —日期时间发生变化后的回调函数。
  • onTimeChange — 当时间选择器的时间发生变化后的回调函数,它将获得两个参数:日历的实例引用和时间选择器中的时间。
  • disabled —处理被禁用的日期的回调函数。
  • dateInfo — 获取某一个日期的额外信息的回调函数,比如给日期添加一个CSS 类名,或者当鼠标滑过日期时显示一段提示。
  • onFocus — 日历获得焦点后的回调函数。
  • onBlur — 日历失去焦点后的回调函数。
相关文章
|
5月前
jeDate日期控件在项目中实际应用
jeDate日期控件在项目中实际应用
25 0
|
5月前
|
前端开发 JavaScript
JavaScript日历制作并实现拖动选择日期
JavaScript日历制作并实现拖动选择日期
40 0
|
8月前
|
JavaScript 前端开发
mui 日期控件的用法
mui 日期控件的用法
111 0
ElementUI 为 DatePicker 日期选择器组件添加前缀说明文字
当我们使用 ElementUI 构建表单页面的时候,经常需要使用到复合型输入框,可前置或后置元素,一般为标签或按钮,作为该输入框的说明性文字。
945 0
ElementUI 为 DatePicker 日期选择器组件添加前缀说明文字
【Layui】时间日期控件
【Layui】时间日期控件
507 0
【Layui】时间日期控件
日期选择插件
在线演示 本地下载
1098 0
|
前端开发 API Android开发