My97DatePicker是很不错的一个日期选择插件,体积只有几十k但是功能非常强大。官网:http://www.my97.net/

能满足很多苛刻的要求。

WdatePicker文本框显示当前日期-实现的结果:

1、首先引入WdatePicker.js。

2、html代码

 <input id="setDate" class="Wdate" name="setDate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})"   type="text" /></td>

3、加入一段JS代码:

 Date.prototype.format = function (format) {
var args = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter "S": this.getMilliseconds()
};
if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var i in args) {
var n = args[i];
if (new RegExp("(" + i + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
}
return format;
}; $(function () {
$("#setDate").val(new Date().format("yyyy-MM-dd")); });

然后就OK了。

简单的时间限制:

1、限制只能选择今天的日期

 onfocus="WdatePicker({startDate:'%y',dateFmt:'yyyy-MM-dd',maxDate:'%y-%M-{%d-1}'})"

2、限制选择今天之前的日期

 <input id="setDate" class="Wdate" name="setDate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'%y-%M-%d'})"  style="padding:2px 5px;margin-left:10px;" type="text" />

效果:

3、My97DatePicker两个日期范围不超过30天,第一个小于第二个,都不大于当前日期。

My97DatePicker 如果两个输入框,第一个不大于第二个,都不大于当前日期,两个输入框之间的时间不超过30天。做法。

如果第二个直接设置比第一个大的范围不超过30天,那么遇到算出来的日期大于当前日期的情况,就会发生第二个输入框可以选择到今天之后的日期。所以要动态地修改第二个输入范围。
 
1.设置第一个不大于第二个,不大于当前日期。 最小为第二个日期减去30天。 并为其设置选中和清空时的事件(用于对第二个输入框进行控制)
2.第二个的规则用函数表示。 设置最大值为一个全局变量。 通过第一个的两个事件来修改这个全局变量。 

效果:

html code:

 <label>日期:</label>

  <input type="text"  style="width:100px;" name="date1" id="datepicker1" size="24"   onfocus="WdatePicker({maxDate:'#F{$dp.$D(\'datepicker2\')||\'new Date()\'}',minDate:'#F{$dp.$D(\'datepicker2\',{d:-30})}',onpicked:pickedFunc,oncleared:clearedFunc})  " value="" />
<label>-</label>
<input type="text" style="width:100px;" name="date2" id="datepicker2" size="24" onfocus="picker2rule(this)" value="" />

js code<动态修改第二个日期选择窗口的函数>

 <script type="text/javascript">
var md = new Date(); //第二个输入框最大值的全局变量
//第一个输入框选择好日期的时候操作
function pickedFunc() { var Y = $dp.cal.getP('y'); //用内置方法获取到选中的年月日
var M = $dp.cal.getP('M');
var D = $dp.cal.getP('d');
M = parseInt(M, 10) - 1;
D = parseInt(D, 10) + 30; //字符串的数字转换成int再运算。并且如果超过30天,也能自动处理。
var d = new Date()
d.setFullYear(Y, M, D) //设置时间
var nowDate = new Date();
if (nowDate <= d) { //现在的时间比较,如果算出来的值大于现在时间,修改全局变量md为现在时间。
md = nowDate;
} else { //全局变量设置为算出来的值得
var month = d.getMonth() + 1; //月份的范围是(0到11);
md = d.getFullYear() + "-" + month + "-" + d.getDate(); //直接把d给过去会有问题,所以拼成字符串发过去
}
}
//第一个清空的时候的操作
function clearedFunc() {
md = new Date();
}
//给第二个输入框定义规则
function picker2rule(ele) {
WdatePicker({ el: ele, minDate: '#F{$dp.$D(\'datepicker1\')}', maxDate: md })
}
</script>

========================================================================================

参数的值


 onfocus="WdatePicker({el:'id', maxDate:'#F{$dp.$D(\'datepicker2\')||\'new Date()\'}',minDate:'#F{$dp.$D(\'datepicker2\',{d:-1800})}',onpicked:pickedFunc,oncleared:clearedFunc})

el:'id'--将WdatePicker的值传给id的标签;

doubleCalendar:true----显示双日期

加上class="Wdate"-----在选择框右边显示日期图标

#F{}-----{}自定义js代码

skin:'whyGreen'----设置皮肤

WdatePicker文本框显示当前日期和时间限制<My97DatePicker两个日期范围不超过30天,第一个小于第二个,都不大于当前日期 >的更多相关文章

  1. Easyui datebox单击文本框显示日期选择

    Easyui默认是点击文本框后面的图标显示日期,为了更进一步优化体验 修改为单击文本框显示日期选择框 修改jquery.easyui.min.js(作者用的是1.3.6版本,其他版本或有区别) 可 c ...

  2. Easyui datebox单击文本框显示日期选择 eayui版本1.5.4.1

    Easyui默认是点击文本框后面的图标显示日期,体验很不好,所以我想单击文本框就显示日期选择框,网上很多版本是1.3,1.4的,于是自己就比葫芦画瓢改了一个1.5.4.1的版本. 我参考了网上这个帖子 ...

  3. JS 格式化时间(获取两个日期之间的每一天、每一月、每半小时、每一秒)

    时间戳转换为时间 // 时间戳转换为时间 function timestampToTime(timestamp, isMs = true) { const date = new Date(timest ...

  4. jquery easyui datebox单击文本框显示日期选择

    jquery easyui的datebox日历控件,实现单击文本框出现日历选择,如下图: 代码: 修改jquery.easyui.min.js第9797行函数(jQuery EasyUI 1.3.2) ...

  5. JQ 点击指定文本框显示div。点击其他区域隐藏DIV

    <input id="username" type="text" style="width:90%;margin-top: 40px;" ...

  6. EasyUI 的日期控件单击文本框显示日历

    注意:可 用 ctrl+f 搜索 "_outerWidth():0" 1. jQuery.easyui.min.js1.3.2 版本   function _745(_746,_7 ...

  7. 微信小程序 - 文本框显示限制最大长度

    wxml <view class='textarea-count'> <textarea placeholder='请输入文字' bindinput="getWords&q ...

  8. jq文本框显示最多可以输入多少字

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. easyui 文本框 显示提示信息data-options="prompt:'格式:水箱支架-京东汽配店铺-图集(大图/图集6)'"

    <tr> <td>图集6:</td> <td> <input class="easyui-textbox" data-opti ...

随机推荐

  1. HTM CSS 笔记乱炖

    一.常用实体(字符转义) '<' == '<' '©' == '©' '>' == '>' '"' == '"' ' ' == ' ' '®' == '®' ...

  2. 一个基于thinkphp的微信授权登陆功能

    共享一份基于thinkphp开发的用户授权登陆的功能代码,本实例使用thinkphp的第三方微信公众平台PHP-SDK,地址https://github.com/dodgepudding/wechat ...

  3. 在 eclipse 中将 web 项目部署到 tomcat 服务器上

    1.在 eclipse 中,选择 Window--->Preferences--->Server--->Runtime Environments,选择 Add 按钮 2.在弹出的对话 ...

  4. poi解析excel

    一.遇见的问题: 当单元格设置为日期类型时,cell.getCellStyle().getDataFormat()返回的值都为176. poi jar包3.14以上不支持用cell.getCellTy ...

  5. Simulation of empirical Bayesian methods (using baseball statistics)

    Previously in this series: The beta distribution Empirical Bayes estimation Credible intervals The B ...

  6. spark 2.1.0 集群安装

    jdk安装 http://www.cnblogs.com/xiaojf/p/6568426.html scala2.11 安装 http://www.cnblogs.com/xiaojf/p/6568 ...

  7. javascript基础-闭包

    原理 函数里包含函数,即闭包. 包含函数的结果是,子函数会挟持父函数的活动对象.子函数在访问一个变量时,先读自身的活动对象,是否包含此变量,没有从父函数里找,还没有,去祖函数,层层回溯,直到windo ...

  8. Promise (1) 初步接触

    总想着王者荣耀排位赛再提升个等级就弃掉游戏好好学习,然而打了两个周也没升上去,看来是应该换个方向发挥了. 最近看了<javascript Promise迷离书>,对Promise的理解颇有 ...

  9. VR全景智慧城市:开启VR全景逛街新时代~

    VR全景,又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体大的区别是"可操作,可交互". 对于顾客体验来说,VR确实是对于实体店是一种颠覆性的创新,它既 ...

  10. Android Apk的反编译和加密

    这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用.下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获得的资源文件和源码. Android的应用程序APK文件说到 ...