LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

JavaScript时间日期控件

admin
2010年7月19日 9:16 本文热度 5511

calendar.js(注:在.net环境下.js文件需存为utf-8格式)


/**//**
*本日历选择控件由tiannet根据前人经验完善而得。大部分代码来自meizz的日历控件。
*tiannet添加了时间选择功能、select,object标签隐藏功能,还有其它小功能。
*使用方法:
* (1)只选择日期
* (2)选择日期和小时
* (3)选择日期和小时及分钟
*设置参数的方法
* (1)设置日期分隔符 setdatesplit(strsplit);默认为"-"
* (2)设置日期与时间之间的分隔符 setdatetimesplit(strsplit);默认为" "
* (3)设置时间分隔符 settimesplit(strsplit);默认为":"
* (4)设置(1),(2),(3)中的分隔符 setsplit(strdatesplit,strdatetimesplit,strtimesplit);
* (5)设置开始和结束年份 setyearperiod(intdatebeg,intdateend)
*说明:
* 默认返回的日期时间格式如同:2005-02-02 08:08
*/
//------------------ 样式定义 ---------------------------//
//功能按钮同样样式
var s_tiannet_turn_base = "height:16px;color:white;border:0 solid #cccccc;cursor:hand;background-color:#2650a6;";
//翻年、月等的按钮
var s_tiannet_turn = "width:28px;" + s_tiannet_turn_base;
//关闭、清空等按钮样式
var s_tiannet_turn2 = "width:22px;" + s_tiannet_turn_base;
//年选择下拉框
var s_tiannet_select = "width:64px;display:none;";
//月、时、分选择下拉框
var s_tiannet_select2 = "width:46px;display:none;";
//日期选择控件体的样式
var s_tiannet_body = "width:150;background-color:#2650a6;display:none;z-index:9998;position:absolute;" +
"border-left:1 solid #cccccc;border-top:1 solid #cccccc;border-right:1 solid #999999;border-bottom:1 solid #999999;";
//显示日的td的样式
var s_tiannet_day = "width:21px;height:20px;background-color:#d8f0fc;";
//字体样式
var s_tiannet_font = "color:#ffcc00;cursor:hand;";
//链接的样式
var s_tiannet_link = "text-decoration:none;color:#2650a6;";
//横线
var s_tiannet_line = "border-bottom:1 solid #6699cc";
//------------------ 变量定义 ---------------------------//
var tiannetyearst = 1950;//可选择的开始年份
var tiannetyearend = 2010;//可选择的结束年份
var tiannetdatenow = new date();
var tiannetyear = tiannetdatenow.getfullyear(); //定义年的变量的初始值
var tiannetmonth = tiannetdatenow.getmonth()+1; //定义月的变量的初始值
var tiannetday = tiannetdatenow.getdate();
var tiannethour = 8;//tiannetdatenow.gethours();
var tiannetminute = 0;//tiannetdatenow.getminutes();
var tiannetarrday=new array(42); //定义写日期的数组
var tiannetdatesplit = "-"; //日期的分隔符号
var tiannetdatetimesplit = " "; //日期与时间之间的分隔符
var tiannettimesplit = ":"; //时间的分隔符号
var tiannetoutobject; //接收日期时间的对象
var arrtiannethide = new array();//被强制隐藏的标签
var m_bolshowhour = false;//是否显示小时
var m_bolshowminute = false;//是否显示分钟

var m_amonhead = new array(12); //定义阳历中每个月的最大天数
m_amonhead[0] = 31; m_amonhead[1] = 28; m_amonhead[2] = 31; m_amonhead[3] = 30; m_amonhead[4] = 31; m_amonhead[5] = 30;
m_amonhead[6] = 31; m_amonhead[7] = 31; m_amonhead[8] = 30; m_amonhead[9] = 31; m_amonhead[10] = 30; m_amonhead[11] = 31;
// ---------------------- 用户可调用的函数 -----------------------------//
//用户主调函数-只选择日期
function setday(obj){
tiannetoutobject = obj;
//如果标签中有值,则将日期初始化为当前值
var strvalue = tiannettrim(tiannetoutobject.value);
if( strvalue != "" ){
tiannetinitdate(strvalue);
}
tiannetpopcalendar();
}
//用户主调函数-选择日期和小时
function setdayh(obj){
tiannetoutobject = obj;
m_bolshowhour = true;
//如果标签中有值,则将日期和小时初始化为当前值
var strvalue = tiannettrim(tiannetoutobject.value);
if( strvalue != "" ){
tiannetinitdate(strvalue.substring(0,10));
var hour = strvalue.substring(11,13);
if( hour < 10 ) tiannethour = hour.substring(1,2);
}
tiannetpopcalendar();
}
//用户主调函数-选择日期和小时及分钟
function setdayhm(obj){
tiannetoutobject = obj;
m_bolshowhour = true;
m_bolshowminute = true;
//如果标签中有值,则将日期和小时及分钟初始化为当前值
var strvalue = tiannettrim(tiannetoutobject.value);
if( strvalue != "" ){
tiannetinitdate(strvalue.substring(0,10));
var time = strvalue.substring(11,16);
var arr = time.split(tiannettimesplit);
tiannethour = arr[0];
tiannetminute = arr[1];
if( tiannethour < 10 ) tiannethour = tiannethour.substring(1,2);
if( tiannetminute < 10 ) tiannetminute = tiannetminute.substring(1,2);
}
tiannetpopcalendar();
}
//设置开始日期和结束日期
function setyearperiod(intdatebeg,intdateend){
tiannetyearst = intdatebeg;
tiannetyearend = intdateend;
}
//设置日期分隔符。默认为"-"
function setdatesplit(strdatesplit){
tiannetdatesplit = strdatesplit;
}
//设置日期与时间之间的分隔符。默认为" "
function setdatetimesplit(strdatetimesplit){
tiannetdatetimesplit = strdatetimesplit;
}
//设置时间分隔符。默认为":"
function settimesplit(strtimesplit){
tiannettimesplit = strtimesplit;
}
//设置分隔符
function setsplit(strdatesplit,strdatetimesplit,strtimesplit){
tiannetdatesplit(strdatesplit);
tiannetdatetimesplit(strdatetimesplit);
tiannettimesplit(strtimesplit);
}
//设置默认的日期。格式为:yyyy-mm-dd
function setdefaultdate(strdate){
tiannetyear = strdate.substring(0,4);
tiannetmonth = strdate.substring(5,7);
tiannetday = strdate.substring(8,10);
}
//设置默认的时间。格式为:hh24:mi
function setdefaulttime(strtime){
tiannethour = strtime.substring(0,2);
tiannetminute = strtime.substring(3,5);
}
// ---------------------- end 用户可调用的函数 -----------------------------//
//------------------ begin 页面显示部分 ---------------------------//
var weekname = new array("日","一","二","三","四","五","六");
document.write('

');
document.write('
');
document.write(' 'onclick="spanyearcevent();"> 年');
document.write('');
document.write(' 'onclick="spanmonthcevent();">  月');
document.write('');
//document.write('
');
//document.write('
');
document.write(' 'onclick="spanhourcevent();"> 时');
document.write('');
document.write(' 'onclick="spanminutecevent();">  分');
document.write('');
document.write('
');
//输出一条横线
document.write('
');
document.write('
');
document.write('');
document.write(' ');
document.write('');
document.write('');
document.write('
');
//输出一条横线
document.write('
');
document.write('');
document.write(' ');
for(var i =0;i < weekname.length;i ++){
//输出星期
document.write('');
}
document.write(' ');
document.write('
' + weekname + '
');
//输出天的选择
document.write('');
var n = 0;
for (var i=0;i<5;i++) {
document.write (' ');
for (var j=0;j<7;j++){
document.write('');
n ++;
}
document.write (' ');
}
document.write (' ');
document.write('');
document.write('');
document.write('');
document.write (' ');
document.write('
'onclick="tiannetday=this.innertext;tiannetsetvalue(true);" '
+' style="' + s_tiannet_day + '"> 
+' style="' + s_tiannet_day + '">  +' style="' + s_tiannet_day + '"> 清空'+
关闭' +
确定 ' +
'
');
document.write('
');
//------------------ end 页面显示部分 ---------------------------//
//------------------ 显示日期时间的span标签响应事件 ---------------------------//
//单击年份span标签响应
function spanyearcevent(){
hideelementsbyid(new array("seltianyear","tiannetmonthhead"),false);
if(m_bolshowhour) hideelementsbyid(new array("tiannethourhead"),false);
if(m_bolshowminute) hideelementsbyid(new array("tiannetminutehead"),false);
hideelementsbyid(new array("tiannetyearhead","seltianmonth","seltianhour","seltianminute"),true);
}
//单击月份span标签响应
function spanmonthcevent(){
hideelementsbyid(new array("seltianmonth","tiannetyearhead"),false);
if(m_bolshowhour) hideelementsbyid(new array("tiannethourhead"),false);
if(m_bolshowminute) hideelementsbyid(new array("tiannetminutehead"),false);
hideelementsbyid(new array("tiannetmonthhead","seltianyear","seltianhour","seltianminute"),true);
}
//单击小时span标签响应
function spanhourcevent(){
hideelementsbyid(new array("tiannetyearhead","tiannetmonthhead"),false);
if(m_bolshowhour) hideelementsbyid(new array("seltianhour"),false);
if(m_bolshowminute) hideelementsbyid(new array("tiannetminutehead"),false);
hideelementsbyid(new array("tiannethourhead","seltianyear","seltianmonth","seltianminute"),true);
}
//单击分钟span标签响应
function spanminutecevent(){
hideelementsbyid(new array("tiannetyearhead","tiannetmonthhead"),false);
if(m_bolshowhour) hideelementsbyid(new array("tiannethourhead"),false);
if(m_bolshowminute) hideelementsbyid(new array("seltianminute"),false);
hideelementsbyid(new array("tiannetminutehead","seltianyear","seltianmonth","seltianhour"),true);
}
//根据标签id隐藏或显示标签
function hideelementsbyid(arrid,bolhide){
var strdisplay = "";
if(bolhide) strdisplay = "none";
for(var i = 0;i < arrid.length;i ++){
var obj = document.getelementbyid(arrid);
obj.style.display = strdisplay;
}
}
//------------------ end 显示日期时间的span标签响应事件 ---------------------------//
//判断某年是否为闰年
function ispinyear(year){
var bolret = false;
if (0==year%4&&((year%100!=0)||(year%400==0))) {
bolret = true;
}
return bolret;
}
//得到一个月的天数,闰年为29天
function getmonthcount(year,month){
var c=m_amonhead[month-1];
if((month==2)&&ispinyear(year)) c++;
return c;
}
//重新设置当前的日。主要是防止在翻年、翻月时,当前日大于当月的最大日
function setrealdaycount() {
if( tiannetday > getmonthcount(tiannetyear,tiannetmonth) ) {
//如果当前的日大于当月的最大日,则取当月最大日
tiannetday = getmonthcount(tiannetyear,tiannetmonth);
}
}
//在个位数前加零
function addzero(value){
if(value < 10 ){
value = "0" + value;
}
return value;
}
//取出空格
function tiannettrim(str) {
return str.replace(/(^\s*)|(\s*$)/g,"");
}
//为select创建一个option
function createoption(objselect,value,text){
var option = document.createelement("option");
option.value = value;
option.text = text;
objselect.options.add(option);
}
//往前翻 year
function tiannetprevyear() {
if(tiannetyear > 999 && tiannetyear <10000){tiannetyear--;}
else{alert("年份超出范围(1000-9999)!");}
tiannetsetday(tiannetyear,tiannetmonth);
//如果年份小于允许的最小年份,则创建对应的option
if( tiannetyear < tiannetyearst ) {
tiannetyearst = tiannetyear;
createoption(document.all.seltianyear,tiannetyear,tiannetyear + "年");
}
checkselect(document.all.seltianyear,tiannetyear);
tiannetwritehead();
}
//往后翻 year
function tiannetnextyear() {
if(tiannetyear > 999 && tiannetyear <10000){tiannetyear++;}
else{alert("年份超出范围(1000-9999)!");return;}
tiannetsetday(tiannetyear,tiannetmonth);
//如果年份超过允许的最大年份,则创建对应的option
if( tiannetyear > tiannetyearend ) {
tiannetyearend = tiannetyear;
createoption(document.all.seltianyear,tiannetyear,tiannetyear + "年");
}
checkselect(document.all.seltianyear,tiannetyear);
tiannetwritehead();
}
//选择今天
function tiannettoday() {
tiannetyear = tiannetdatenow.getfullyear();
tiannetmonth = tiannetdatenow.getmonth()+1;
tiannetday = tiannetdatenow.getdate();
tiannetsetvalue(true);
//tiannetsetday(tiannetyear,tiannetmonth);
//selectobject();
}
//往前翻月份
function tiannetprevmonth() {
if(tiannetmonth>1){tiannetmonth--}else{tiannetyear--;tiannetmonth=12;}
tiannetsetday(tiannetyear,tiannetmonth);
checksele

该文章在 2010/7/19 9:16:07 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved