日期:2014-05-16 浏览次数:20341 次
var cal; var isFocus=false; // 是否为焦点 var pickMode ={ "second":1, "minute":2, "hour":3, "day":4, "month":5, "year":6 }; var topY=0,leftX=0; // 自定义定位偏移量 2007-02-11 由 寒羽枫添加 // 选择日期 → 由 寒羽枫 2007-06-10 添加,通过 ID 来选日期 function SelectDateById(id,strFormat,x,y) { var obj = document.getElementById(id); if(obj == null){return false;} obj.focus(); if(obj.onclick != null){obj.onclick();} else if(obj.click != null){obj.click();} else{SelectDate(obj,strFormat,x,y)} } // 选择日期 → 由 寒羽枫 2006-06-25 添加 function SelectDate(obj,strFormat,x,y) { leftX =(x == null) ? leftX : x; topY =(y == null) ? topY : y;// 自定义定位偏移量 2007-02-11 由 寒羽枫添加 if(document.getElementById("ContainerPanel")==null){InitContainerPanel();} var date = new Date(); var by = date.getFullYear()-50; // 最小值 → 50 年前 var ey = date.getFullYear()+50; // 最大值 → 50 年后 // cal = new Calendar(by, ey,1,strFormat); //初始化英文版,0 为中文版 cal = (cal==null) ? new Calendar(by, ey, 0) : cal; // 不用每次都初始化 // 2006-12-03 修正 cal.DateMode =pickMode["second"]; // 复位 if(strFormat.indexOf('s')< 0) {cal.DateMode =pickMode["minute"];}// 精度为分 if(strFormat.indexOf('m')< 0) {cal.DateMode =pickMode["hour"];}// 精度为时 if(strFormat.indexOf('h')< 0) {cal.DateMode =pickMode["day"];}// 精度为日 if(strFormat.indexOf('d')< 0) {cal.DateMode =pickMode["month"];}// 精度为月 if(strFormat.indexOf('M')< 0) {cal.DateMode =pickMode["year"];}// 精度为年 if(strFormat.indexOf('y')< 0) {cal.DateMode =pickMode["second"];}// 默认精度为秒 cal.dateFormatStyleOld = cal.dateFormatStyle; cal.dateFormatStyle = strFormat; cal.show(obj); } /**//**//**//**//**//**//**//** * 返回日期 * * @param d * the delimiter * @param p * the pattern of your date 2006-06-25 由 * 寒羽枫 修改为根据用户指定的 style 来确定; */ String.prototype.toDate = function(style) { var y = this.substring(style.indexOf('y'),style.lastIndexOf('y')+1);// 年 var M = this.substring(style.indexOf('M'),style.lastIndexOf('M')+1);// 月 var d = this.substring(style.indexOf('d'),style.lastIndexOf('d')+1);// 日 var h = this.substring(style.indexOf('h'),style.lastIndexOf('h')+1);// 时 var m = this.substring(style.indexOf('m'),style.lastIndexOf('m')+1);// 分 var s = this.substring(style.indexOf('s'),style.lastIndexOf('s')+1);// 秒 if(s == null ||s == "" || isNaN(s)) {s = new Date().getSeconds();} if(m == null ||m == "" || isNaN(m)) {m = new Date().getMinutes();} if(h == null ||h == "" || isNaN(h)) {h = new Date().getHours();} if(d == null ||d == "" || isNaN(d)) {d = new Date().getDate();} if(M == null ||M == "" || isNaN(M)) {M = new Date().getMonth()+1;} if(y == null ||y == "" || isNaN(y)) {y = new Date().getFullYear();} var dt ; eval ("dt = new Date('"+ y+"', '"+(M-1)+"','"+ d+"','"+ h+"','"+ m+"','"+ s +"')"); return dt; } /**//**//**//**//**//**//**//** * 格式化日期 * * @param d * the delimiter * @param p * the pattern of your date * @author meizz */ Date.prototype.format = function(style) { var o = { "M+" : this.getMonth() + 1, // month "d+" : this.getDate(), // day "h+" : this.getHours(), // hour "m+" : this.getMinutes(), // minute "s+" : this.getSeconds(), // second "w+" : "天一二三四五六".charAt(this.getDay()), // week "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter "S" : this.getMilliseconds() // millisecond } if(/(y+)/.test(style)) { style = style.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } for(var k in o){ if(new RegExp("("+ k +")").test(style)){ style = style.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } } return st