📄 cal.js
字号:
var mons = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
//获得 y 年 m 月的天数.
function get_days(y, m)
{
if(m == 2)
return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0))? 29: 28);
else
return(mons[m-1]);
}
/*format :
yyyy-mm-dd 三个下拉列表
--------- ------ ------
| | - | | - | |
--------- ------ ------
*/
function cal(format, this_year, year_num, f_name, cont)
{
this.format = format;
this.years = year_num;
if (format == '')
{
this.format = 'yyyy-mm-dd';
}
this.year = this_year + 1;
this.prefix = f_name;
this.div = document.getElementById(cont);
this.create_select = function(name, onchange, map)
{
var tmp_sel = document.createElement("SELECT");
tmp_sel.name = name;
var opt_ele = null;
var i = 0;
for (var x in map)
{
opt_ele = document.createElement("option");
opt_ele.value = x;
opt_ele.text = map[x];
tmp_sel.appendChild(opt_ele);
}
this.div.appendChild(tmp_sel);
return tmp_sel;
};
this.mod_days = function()
{
var y = this.y_sel.value;
var m = this.m_sel.value;
var days = get_days(y, m);
var d_sel = this.d_sel;
// alert(days + '==' + d_sel.options.length);
if (!d_sel || d_sel.options.length == days) return;
var opts = d_sel.options;
if (opts.length > days)
{
while(this.d_sel.options.length > days)
this.d_sel.options[days] = null;
}
else
{
for (var x = opts.length + 1; x <= days; x++)
{
this.d_sel.options[this.d_sel.options.length] = new Option(x, x);
}
}
};
this.create = function(){
//年
var years = {};
for (var x = 0; x < 80; x++)
years[this.year - x] = this.year - x;
this.y_sel = this.create_select(this.prefix + '_year', '', years);
var yyy = this.y_sel.options;
for (var a = 0; a < yyy.length; a++)
{
yyy[a].text = yyy[a].value;
}
//月
var mons = {};
for (var x = 101; x < 113; x++)
{
var v = (x+'').substring(1);
mons[v] = v;
}
this.div.appendChild(document.createTextNode(" 年 "));
this.m_sel = this.create_select(this.prefix + '_month', '', mons);
this.div.appendChild(document.createTextNode(" 月 "));
var mmm = this.m_sel.options;
for (var a = 0; a < mmm.length; a++)
{
mmm[a].text = mmm[a].value;
}
if (this.format.indexOf('-dd') > -1)
{
//日
var days = {};
for (var x = 101; x < 132; x++)
{
var v = (x+'').substring(1);
days[v] = v;
}
this.d_sel = this.create_select(this.prefix + '_day', '', days);
var ddd = this.d_sel.options;
for (var a = 0; a < ddd.length; a++)
{
ddd[a].text = ddd[a].value;
}
this.div.appendChild(document.createTextNode(" 日 "));
}
var obj = this;
var f = function()
{
obj.mod_days();
};
this.m_sel.onchange = f;
this.y_sel.onchange = f;
};
this.src = function(){
return this.div.innerHTML;
};
this.getvalue = function(){
var str = this.y_sel.value + '-' + this.m_sel.value;
if (this.format.indexOf("-dd") > -1)
{
str += '-' + this.d_sel.value;
}
return str;
};
this.setvalue = function(v){
if (v == '') return;
var rex = /^(((19|20)[0-9]{2})-((0[1-9])|(1[0-2]))(-((0[1-9])|([1-2]\d)|(3[0-1])))?)$/;
if (!rex.test(v))
return;
var vs = v.split('-');
this.y_sel.value = vs[0];
this.m_sel.value = vs[1];
if (vs.length > 2) this.d_sel.value = vs[2];
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -