`
huangningren
  • 浏览: 44883 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

不错的时间控件

阅读更多
[color=green]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 <head> 
  <title> new document </title> 
  <meta name="generator" content="editplus" /> 
  <meta name="author" content="" /> 
  <meta name="keywords" content="" /> 
  <meta name="description" content="" /> 
 <style type="text/css"> 
    *{font-size:14px} 
    /*日期最外层*/ 
    #logCalendar{width:950px;border-top:1px solid #ccc;border-left:1px solid #ccc} 
    /*日期内部所有单元格*/ 
    #logCalendar td{ 
        border-right:1px solid #ccc;border-bottom:1px solid #ccc; 
        padding-left:5px;text-align:center; 
        height:22px;line-height:22px; 
    } 
    #daysList{border-top:1px solid #ccc;border-left:1px solid #ccc} 
    /*日期列表所有单元格*/ 
    #daysList td{text-align:center;height:22px} 

    /*周次及星期几的输入框*/ 
    .bd{border:0;text-align:center;color:#00f} 
    /*日期默认样式*/ 
    .unSelectDay{ 
        color:#00f;font-weight:normal; 
        padding:3px;cursor:pointer; 
        text-decoration:underline 
    } 
    /*当前点击的日期样式*/ 
    .selectDay{color:#fff;font-weight:bold;background:#FEB0B0;padding:1px;text-decoration:none;cursor:normal} 
    /*周末样式*/ 
    .weekEnd{color:#f00} 

    .test{color:#f00;text-decoration:none} 
 </style> 
 <script type="text/javascript"> 
 //2007-12-21 工作日志日期组件 yanwei 
 //使用闭包隐藏所有变量和函数,防止与外界冲突 
var logDateControl=(function(){ 
    var curSelEl;    //当前选中的日期 
    var styleData=[],dataStyle={}; 
    //获取指定id的元素 
    var $=function(id){return document.getElementById(id)} 
    //计算指定日期是第几周(默认为当前日期),该计算方法比较严密准确 
    var calWeek=function(dt){ 
        var calDay=dt||new Date();    //当前要计算的时间 
        var firstDay=new Date(calDay.getFullYear(),0,1);    //本年第一天 
        //计算当前是本年的第几天,00:00为当天开始 
        var daysAll=Math.floor((calDay-firstDay)/1000/60/60/24)+1;     
        //本年第一天星期几 
        var firstDayWeekday=firstDay.getDay();     
        //该结果加到第一周的周一,便于后面计算 
        var diffDay=firstDayWeekday==0?6:firstDayWeekday-1;     
        daysAll=daysAll+diffDay; 
        return Math.ceil(daysAll/7);    //返回计算结果 
    } 
    //计算一个月多少天,年份4位数字,月份1-2位数字(应该是js日期格式如1月传入0),数据非法返回-1 
    var getDaysLen=function(year,month){ 
        if(!(/^\d{4}$/.test(year)&&/^\d{1,2}$/.test(month))){return -1} 
        var monthDays=[31,28,31,30,31,30,31,31,30,31,30,31] 
        //存在2月29日 
        if(month==1&&new Date(year,1,29).getMonth()==1){monthDays[1]=29} 
        return monthDays[month] 
    } 
    //显示日期列表,传入年、月(按日常月份传入。如二月传入2)、及显示位置 
    var displayDayList=function(year,month,pos){ 
        var daysList=[]; 
        var cells1=$(pos).rows[0].cells; 
        var cells2=$(pos).rows[1].cells; 
        var daysArr=['日','一','二','三','四','五','六']; 
        //下面的month-1转换为js月份表示 
        for(var i=1,l=getDaysLen(year,--month)+1;i<l;i++){ 
            var wd=new Date(year,month,i).getDay(); 
            cells1[i-1].className=""; 
            if(wd==0||wd==6){cells1[i-1].className="weekEnd";}    //为周末添加特殊样式 
            //_oldCls保存当前日期的默认样式 
            cells1[i-1].innerText=daysArr[wd]; 
            cells2[i-1].className="unSelectDay"; 
            cells2[i-1].setAttribute("_oldCls","unSelectDay"); 
            cells2[i-1].innerText=i>9?i:"0"+i; 
            //匹配用户自定义样式 
            var dtStr=year+"|"+(month+1)+"|"+i; 
            if((","+styleData.join(',')+",").indexOf(","+dtStr+",")>-1){ 
                cells2[i-1].className="unSelectDay "+dataStyle[dtStr]; 
                cells2[i-1].setAttribute("_oldCls","unSelectDay "+dataStyle[dtStr]); 
            } 
        } 
        //如果是当前月则选中当日 
        if(new Date().getMonth()==month){ 
            curSelEl=cells2[new Date().getDate()-1]; 
            curSelEl.className="selectDay"; 
        } 
        for(var j=i-1;j<31;j++){ 
            cells1[j].className=cells2[j].className=""; 
            cells1[j].innerHTML=cells2[j].innerHTML="  "; 
        } 
        $(pos).onclick=function(){changeInfo()} 
    } 
    //根据选择的值进行处理周次和周几的调整,可以直接传入保存日期内容的dom元素,或者函数根据点击位置判断 
    var changeInfo=function(e){ 
        e=e||event; 
        var el=e.target||e.srcElement||e;    //最后一个e:可能是传入的对象 
        var day=el.innerText; 
        if(!/^\d{1,2}$/.test(day)) return;    //如果不是日期什么都不做 
        //恢复之前选中日期的样式 
        if(curSelEl){curSelEl.className=curSelEl.getAttribute("_oldCls")} 
        curSelEl=el;    //保存当前处理的元素 
        //更新选中日期的样式 
        el.className="selectDay"; 
        var dt=new Date($("year").value,$("month").value-1,day); 
        //更新信息 
        $("day").value=day;    //日期 
        $("weekday").value=['日','一','二','三','四','五','六'][dt.getDay()];    //星期几 
        $("week").value=calWeek(dt);    //第几周 
    } 
    //初始化 
    window.attachEvent("onload",function(){ 
        var curDate=new Date(),curYear=curDate.getFullYear(); 
        //显示上下十年 
        for(var i=-10;i<10;i++){$("year").add(new Option(curYear+i,curYear+i))} 
        $("year").selectedIndex=10;    //默认选中当前年份 
        $("month").selectedIndex=curDate.getMonth();    //当前月份 
        $("day").value=curDate.getDate();    //当前日期 
        $("weekday").value=['日','一','二','三','四','五','六'][curDate.getDay()];    //当前星期几 
        $("week").value=calWeek();    //当前第几周 
        //改变日期或年份更新日期列表 
        $("year").onchange=$("month").onchange=function(){displayDayList($("year").value,$("month").value,"daysList")}; 
        //显示当月日期列表,并高亮当天的日期 
        displayDayList(curDate.getFullYear(),curDate.getMonth()+1,"daysList"); 
    }); 
     
    //对外设定样式的接口。 
    //格式:([2007,10,12],"color:#f00") ([[2007,10,20],[2007,11,25]],"color:#00f") 
    //如果月份小于10不要带0 
    var setDateStyle=function(dateArr,style){ 
        if(typeof dateArr!="object")return; 
        if(dateArr instanceof Array){ 
            if(dateArr[0] instanceof Array){ 
                for(var i=0;i<dateArr.length;i++) setDateStyle(dateArr[i],style); 
            } 
            var dataStr=dateArr.join('|'); 
            styleData.push(dataStr); 
            dataStyle[dataStr]=style; 
            return; 
        } 
    } 
    //对外接口 
    return {setDateStyle:setDateStyle} 
})(); 
//测试样式设定 
logDateControl.setDateStyle([[2007,12,15],[2007,11,12]],"test"); 
 </script> 
 </head> 

 <body> 
  <table cellpadding="3" cellspacing="0" id="logCalendar"> 
    <tr> 
        <td>第<input type="text" name="week" class="bd" readonly size="2">周</td> 
        <td>星期<input type="text" name="weekday" class="bd" readonly size="2"></td> 
        <td rowspan="2" style="padding:0"> 
            <table width="100%" cellpadding="3" height="100%" cellspacing="0" id="daysList"> 
                <tr> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td><td></td> 
                </tr> 
                <tr> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td> 
                    <td></td><td></td><td></td><td></td><td></td><td></td> 
                </tr> 
            </table> 
        </td> 
    </tr> 
    <tr> 
        <td><select name="year" id="year"></select>年 <select name="month" id="month"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
    <option value="9">9</option> 
    <option value="10">10</option> 
    <option value="11">11</option> 
    <option value="12">12</option> 
  </select>月</td> 
        <td>日期<input type="text" name="day" size="2" class="bd" id="day"></td> 
    </tr> 
  </table> 
 </body> 
</html> [/color]



来源:http://www.jb51.net/article/13197.htm
分享到:
评论

相关推荐

    PB时间控件PB各种时间控件, PB各种时间控件, PB各种时间控件 PB各种时间控件

    在PB中,时间控件是开发用户界面时不可或缺的一部分,它们允许用户输入、选择或操作日期和时间值。本篇文章将深入探讨PB中的各种时间控件及其应用场景。 1. **日期选择器控件 (Date Picker)**:PB提供了内置的日期...

    JS/WEB日期时间控件

    日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期...

    delphi日期时间控件

    "delphi日期时间控件" 提供了一种高效的方法,允许用户同时选择日期和时间,大大增强了用户体验。这里我们将深入探讨这种控件以及与其相关的知识点。 首先,TMS Component Pack是一个强大的第三方组件库,它包含了...

    c#显示时间控件

    在C#编程中,时间控件是用于展示和操作时间的一种可视化元素,它通常被集成在Windows Forms或WPF应用程序中。"c#显示时间控件"主要涉及到两种常见的控件:DateTimePicker和Timer。 DateTimePicker控件允许用户选择...

    js 时间控件 js 时间控件

    JavaScript时间控件是一种在网页上实现用户交互式选择时间的组件。它们通常用于表单输入,让用户能够方便地设定日期或时间,而无需手动输入。JavaScript时间控件的实现依赖于DOM操作、事件处理和时间格式化等技术。...

    ext4 年月时间控件 年月日时间控件 年月日时分秒时间控件

    在EXTJS4中,时间控件是用于用户交互并输入日期和时间的界面元素,它提供了多种选择方式,包括年月选择、年月日选择以及年月日时分秒选择。这些控件在Web应用程序中非常常见,尤其适用于需要用户输入特定日期或时间...

    IFIX要用到的VB时间控件

    在这个场景下,VB(Visual Basic)时间控件就显得尤为重要。VB时间控件是VB编程环境中用于显示、编辑和操作日期与时间的一种图形用户界面组件,它可以帮助开发者方便地与用户交互,处理与时间相关的信息。 IFIX系统...

    界面非常美观的时间控件

    一个美观的时间控件,如“界面非常美观的时间控件”,是提升应用或网站功能性和吸引力的重要元素。这类控件允许用户方便地选择、输入或显示时间,常用于日程安排、事件提醒、预订系统等场景。 时间控件的设计通常...

    my97时间控件

    "my97时间控件"是一款在IT领域中广泛使用的日期和时间选择工具,尤其适用于网页开发。这个控件提供了一种用户友好的界面,使得用户可以方便地选择和输入日期与时间,大大提升了交互体验。它具有高度的自定义性,可以...

    BootStrap时间控件.zip

    Bootstrap时间控件是一种基于Twitter Bootstrap框架的用户界面组件,用于在网页上实现高效、美观的时间选择功能。Bootstrap作为最流行和广泛使用的前端开发框架之一,提供了丰富的预设样式、组件和JavaScript插件,...

    JS时间控件 script时间控件 漂亮的 日历

    JavaScript(简称JS)时间控件是网页开发中常用的一种组件,用于帮助用户在网页上方便地选择或输入日期和时间。这些控件通常通过JavaScript库或者自定义脚本实现,可以提供美观的交互界面和灵活的格式化选项。在本...

    在PB中使用日期时间控件

    在PowerBuilder(PB)开发环境中,日期时间控件是一种常用的功能元素,用于用户界面中输入或选择日期和时间。在PB中,日期时间控件提供了直观的用户交互,使得应用程序可以方便地处理与日期和时间相关的数据。下面将...

    jquery 日期时间控件

    而"jQuery 日期时间控件"则是基于jQuery构建的,用于帮助开发者在网页上添加用户友好的日期和时间选择功能。这类控件通常提供交互式的日历视图和时间选择器,使得用户可以方便地输入或选择日期和时间,避免手动输入...

    时间控件,web前端

    在Web前端开发中,时间控件(Time Picker)是一种常见的用户界面元素,它允许用户方便地选择或输入特定的时间值。这种控件在各种应用场景中非常实用,如在线预订、日程安排、事件管理等。本文将深入探讨时间控件的...

    extjs时间控件精确秒

    在EXTJS这个强大的JavaScript框架中,时间控件是开发者经常使用的组件之一,尤其在构建复杂的Web应用程序时。EXTJS的时间控件允许用户选择或输入时间,通常以小时、分钟和秒为单位,提供了用户友好的界面和丰富的...

    时间控件js 调用

    JavaScript时间控件是一种在网页上实现用户交互式选择时间的组件。它们通常用于表单,让用户可以方便地输入或选择日期和时间,而无需手动键入。在网页开发中,JavaScript时间控件提供了友好的用户体验,使用户界面...

    HTML自定义时间控件

    1、根据给定的年和月绘画出时间控件 2、往时间控件中添加小圆点标识(单个添加和批量添加--单个传当月日期,多个传日期数组) 3、对控件中前、后月份日期的点击事件(灰色日期),当前月份日期点击事件 4、日期...

    日期选择时间控件 很强悍的

    在IT领域,尤其是在网页开发和用户界面设计中,日期选择时间控件是不可或缺的一部分。这样的控件允许用户方便地选择日期和时间,提高了交互性和用户体验。"日期选择时间控件"是一个强大的工具,通常用于在线表单、...

    C# ASP.NET 时间控件_日期时间选择输入框控件。

    习惯了C# WinForm上使用DateTimePicker,在ASP.NET开发页面时,发现最简单的日期时间输入选择框居然没有现成的控件,很有束手无策的感觉。网上找了很多,除了牛人自己写控件外,大多数都是使用My97DatePicker这个第...

    easyUI时间控件使用

    在本文中,我们将深入探讨如何在EasyUI框架中有效地使用时间控件,以及如何解决时间格式化的问题。EasyUI是一个基于jQuery的轻量级前端开发框架,它提供了一系列丰富的组件,帮助开发者快速构建用户界面。时间控件是...

Global site tag (gtag.js) - Google Analytics