My97DatePicker:开始时间和结束时间的最大间隔为1个月30天,并且不大于当前时间(3种方法)
- <span>开始日期</span><input name="startTime" id="startTime" onfocus="startTimeFocus();" class="input-text Wdate" style="width:200px" >
- <span>结束日期</span><input name="endTime" id="endTime" onfocus="endTimeFocus();" class="input-text Wdate"style="width:200px" >
- function startTimeFocus() {
- return WdatePicker({
- skin : 'whyGreen',
- minDate:'#F{$dp.$D(\'endTime\',{d:-30});}',
- maxDate : '#F{$dp.$D(\'endTime\')||\'%y-%M-%d\'}',
- doubleCalendar:true,
- dateFmt:'yyyy-MM-dd'
- });
- }
- function endTimeFocus() {
- return WdatePicker({
- skin : 'whyGreen',
- minDate:'#F{$dp.$D(\'startTime\')}',
- maxDate : '#F{$dp.$D(\'startTime\',{d:30})||\'%y-%M-%d\'}',
- doubleCalendar:true,
- dateFmt:'yyyy-MM-dd'
- });
- }
- function endTimeFocus() {
- return WdatePicker({
- skin : 'whyGreen',
- minDate:'#F{$dp.$D(\'startTime\')}',
- //maxDate : '#F{$dp.$D(\'startTime\',{d:30})||\'%y-%M-%d\'}',
- maxDate:getMaxDate(),
- doubleCalendar:true,
- dateFmt:'yyyy-MM-dd'
- });
- }
- //获得最大时间
- function getMaxDate(){
- var clock=currentTime();
- var dt;
- var times=0;
- dt=$("#startTime").val();
- if(dt!=''){
- times =Date.parse(dt.replace(/-/g,'/'))+30*24*60*60*1000;//时间间隔为30天
- if(times-Date.parse(clock.replace(/-/g,'/'))<0){
- var d1 = new Date(times);
- var year = d1.getFullYear();
- var month = d1.getMonth() + 1; //月份以0开头
- var day = d1.getDate();
- var hh = d1.getHours();
- var mm = d1.getMinutes();
- var clock = year + "-";
- if (month < 10) clock += "0";
- clock += month + "-";
- if (day < 10) clock += "0";
- clock += day + " ";
- if (hh < 10) clock += "0";
- clock += hh + ":";
- if (mm < 10) clock += '0';
- clock += mm;
- }
- }
- return clock;
- }
- //当前时间
- function currentTime() {
- var now = new Date();
- var year = now.getFullYear();
- var month = now.getMonth() + 1;
- var day = now.getDate();
- var hh = now.getHours();
- var mm = now.getMinutes();
- var clock = year + "-";
- if (month < 10) clock += "0";
- clock += month + "-";
- if (day < 10) clock += "0";
- clock += day + " ";
- if (hh < 10) clock += "0";
- clock += hh + ":";
- if (mm < 10) clock += '0';
- clock += mm;
- return (clock);
- }
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>My97DatePicker示例</title>
- <script type="text/javascript" src="../libs/My97DatePicker/WdatePicker.js"></script>
- <script type="text/javascript" src="picker1.js"></script>
- <link type="text/css" href="97.css" rel="stylesheet" media="all" />
- </head>
- <body>
- <h1>My97DatePicker代码演示</h1>
- <article class="demo">
- <h2>1.两日期时间相差30天,不超过当前日期,控件Picker1</h2>
- 开始时间:<input type="text" class="date_input" id="datepicker1"/>
- 结束时间:<input type="text" class="date_input" id="datepicker2"/>
- </article>
- <article class="demo">
- <h2>1.两日期时间相差15天,不超过当前日期,控件Picker1</h2>
- 开始时间:<input type="text" class="date_input" id="datepicker3"/>
- 结束时间:<input type="text" class="date_input" id="datepicker4"/>
- </article>
- <script type="text/javascript">
- var picker1 = new Picker1("datepicker1","datepicker2",30);
- picker1.init();
- var picker2 = new Picker1("datepicker3","datepicker4",15);
- picker2.init();
- </script>
- </body>
- </html>
/** * author:ls * email:liusaint@gmail.com * date:2016年1月2日*/
//IE9以下不能使用bind的处理。 if (!Function.prototype.bind) { Function.prototype.bind = function (oThis) { if (typeof this !== "function") { throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); } var aArgs = Array.prototype.slice.call(arguments, 1), fToBind = this, fNOP = function () {}, fBound = function () { return fToBind.apply(this instanceof fNOP && oThis ? this: oThis, aArgs.concat(Array.prototype.slice.call(arguments))); }; fNOP.prototype = this.prototype; fBound.prototype = new fNOP(); return fBound; };}
function Picker1(startEle,endEle,day){ this.md = new Date(); this.startEle = startEle; this.endEle = endEle; this.day = -day;}
Picker1.prototype = { init:function(){ //初始化控件。给开始日期输入框和结束的输入框绑定事件。传入合理的参数。注意this。 var that = this; document.getElementById(this.startEle).onfocus = function(){ that.picker1rule(this); } document.getElementById(this.endEle).onfocus = function(){ that.picker2rule(this); } }, picker1rule:function(ele){ //开始日期的输入框的规则 var pickedfunBind = this.pickedFunc.bind(ele,this); var onclearedBind = this.clearedFun.bind({},this); WdatePicker({maxDate:'#F{$dp.$D(\''+this.endEle+'\')||\'new Date()\'}',minDate:'#F{$dp.$D(\''+this.endEle+'\',{d:'+this.day+'})}',onpicked:pickedfunBind,oncleared:onclearedBind}) }, picker2rule:function(ele){ // console.log(this.md,this,"in picker2rule"); WdatePicker({el:ele,minDate:'#F{$dp.$D(\''+this.startEle+'\')}',maxDate:this.md}) }, pickedFunc:function(that){ //开始日期的输入框的规则,onpicked时候的动作 var Y=$dp.cal.getP('y'); var M=$dp.cal.getP('M'); var D=$dp.cal.getP('d'); // var choosedDateArr = document.getElementById(that.startEle).value.split("-"); // var Y=choosedDateArr[0]; // var M=choosedDateArr[1]; // var D=choosedDateArr[2]; M=parseInt(M,10)-1; D=parseInt(D,10) - that.day; //超过30天,也能自动处理。 var d = new Date() d.setFullYear(Y,M,D) //设置时间 var nowDate=new Date(); //跟现在的时间比较,如果算出来的值大于现在时间,修改全局变量md为现在时间。否则为算出来的时间。 if(nowDate<=d){ that.md=nowDate; }else{ var month=d.getMonth()+1; //月份的范围是(0到11); that.md=d.getFullYear()+"-"+month+"-"+d.getDate(); //直接把d给过去会有问题,所以拼成字符串发过去 } }, clearedFun:function(that){ //开始日期的输入框的规则,onpicked时候的动作oncleared that.md=new Date(); // console.log(that.md,that,'in clear'); }};
My97DatePicker:开始时间和结束时间的最大间隔为1个月30天,并且不大于当前时间(3种方法)的更多相关文章
- [整理] C#调用SQLDMO.DLL时间数据库备份 / 还原。 (香神无涯) // C#实现SQLSERVER2000数据库备份还原的两种方法 (带进度条)
/// <summary>/// 通过调用MSSQL的SQLDMO.DLL文件来实现备份数据库/// 1.首先在在项目中引用SQLDMO.DLL文件./// 2.在引用中的SQLDMO.D ...
- My97DatePicker 日期控制,开始时间不能>结束时间,结束时间不能<开始时间
<li>日期: <input type="text" style="margin-top: 5px;" value="${begin ...
- myDate97 设置开始时间和结束时间
myDate97 设置开始时间和结束时间 CreationTime--2018年8月28日16点46分 Author:Marydon 1.简单示例 第一步:引入My97DatePicker/Wda ...
- bootstrap-datetimepicker 进一步跟进~~~开始时间和结束时间的样式显示
上次简单介绍了一下:05.LoT.UI 前后台通用框架分解系列之——漂亮的时间选择器(http://www.cnblogs.com/dunitian/p/5524019.html) 这次深入再介绍一下 ...
- c# 获取 本周、本月、本季度、本年 的开始时间或结束时间
#region 获取 本周.本月.本季度.本年 的开始时间或结束时间 /// <summary> /// 获取结束时间 /// </summary> /// <param ...
- java获取本月开始时间和结束时间、上个月第一天和最后一天的时间以及当前日期往前推一周、一个月
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.uti ...
- easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大 >>>>>>>>>>> ...
- project 2013 设置工期为1个工作日,但开始时间与结束时间不是同一天
1.问题描述 project2013在工期栏输入 1 ,在开始时间结束时间点自动安排,就会出现如下情况,会被误认为是两天 2.问题解决 文件-->选项-->常规-->日期格式选择 ...
- C# 根据第几周和季度 获取开始时间和结束时间
/// <summary> /// 根据第几周 获取开始时间和结束时间 /// </summary> /// <param name="week"&g ...
随机推荐
- c# 多线程之-- System.Threading Timer的使用
作用:每隔多久去执行线程里的方法. class ThreadTimerDemo { static void Main(string[] args) { // Create an AutoResetEv ...
- .Net Core+Vue.js+ElementUI 实现前后端分离
.Net Core+Vue.js+ElementUI 实现前后端分离 Tags: Vue 架构 前端采用:Vue.js.Element-UI.axios 后端采用:.Net Core Mvc 本项目是 ...
- 给UIScrollView添加category实现UIScrollView的轮播效果
给UIScrollView添加category实现UIScrollView的轮播效果 大家都知道,要给category添加属性是必须通过runtime来实现的,本教程中给UIScrollView添加c ...
- AT89S52之串行异步通信笔记
SRF 中断入口地址 中断源 外中断 外部中断0 INT0(P3.2) 外部中断1 INT1(P3.3) 电平方式触发 低电平 脉冲方式触发 脉冲后延的负跳 内中断 定时中断 串行中断 中断允许控制寄 ...
- [EffectiveC++]item27:尽量少做转型动作
- for/while 循环全部执行完,, 中途不会停下!!中途不会停下!!中途不会停下!!! 中途不会停下!!!!!
对于这样一个在for 里面的, 他会从开始到最后走走一遍,然后再回到开始, 而不是在里面有两个操作,全部操作完第一个再往下走, 这个和我的学习方法似乎一样,真的要全局来一遍,再从新来一遍回顾问题 下面 ...
- 021.15 IO流 其他流
IO包中的其他类操作基本数据类型:DataInputStream与DataOutputStream操作字节数组:ByteArrayInputStream与ByteArrayOutputStream操作 ...
- oracle查看用户属于哪个表空间
select username,default_tablespace from dba_users where username='用户名';
- 1.4 Installation and Setup(安装和设置)
1.4 Installation and Setup(安装和设置) 这里我们用Anaconda发行版作为Python的使用环境,推荐安装Python3.6,本书就是用Python3.6代码写成的.(译 ...
- 超链接<a>标签用法
1.a标签点击事件 1>1a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且 ...