日期:2014-05-16 浏览次数:20409 次
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