zoukankan      html  css  js  c++  java
  • JavaScript日期处理函数大全


         JavaScript日期处理函数大全

    1。解决2000问题
    function y2k(number) { return (number < 1000) ? number + 1900 : number; }
    2。检查日期是否合法
    // 当输入参数为isDate(dd,mm,ccyy)时,表示要检查年,月,日
    // 当输入参数为isDate(dd,mm) 表示默认年为当前年
    // 当输入参数为isDate(dd)    表示默认年,月为当前年月
    // 注意输入月份保证在1-12以内。

    function isDate (day,month,year) {
        var today = new Date();
        year = ((!year) ? y2k(today.getYear())year);
        month = ((!month) ? today.getMonth():month-1);
        if (!day) return false
        var test = new Date(year,month,day);
        if ( (y2k(test.getYear()) == year) &&
             (month == test.getMonth()) &&
             (day == test.getDate()) )
            return true;
        else
            return false
    }

    以下是调用例子:
    if (isDate(31,2,1997))
        document.write("Valid");
    else
        document.write("Invalid");

    3。如何判断两个日期中的间隔天数
    function daysElapsed(date1,date2) {
        var difference = Date.UTC(date1.getYear(),date1.getMonth(),date1.getDate(),0,0,0)
                       - Date.UTC(date2.getYear(),date2.getMonth(),date2.getDate(),0,0,0);
        return difference/1000/60/60/24;
    }

    4。如何将一个下拉列表框中的月份传递到另一页
    <FORM>
    <SELECT NAME="selectName">
    <OPTION>January
    <OPTION>February
    <OPTION>March
    <OPTION>April
    <OPTION>May
    <OPTION>June
    <OPTION>July
    <OPTION>August
    <OPTION>Spetember
    <OPTION>October
    <OPTION>November
    <OPTION>December
    </SELECT>
    <INPUT TYPE="BUTTON" VALUE="Go" onClick="window.location.href = 'nextpage.html?' +
    this.form.selectName.options[this.form.selectName.selectedIndex].text">
    </FORM>

    在nextpage.html中加入下面的代码
    <FORM name="formName"><INPUT TYPE="TEXT" name="textName"><FORM>
    <SCRIPT LANGUAGE="JavaScript"><
    document.formName.textName.value = location.search.substring(1);
    //-SCRIPT>

    或则:
    <SCRIPT LANGUAGE="JavaScript"><
    document.write("<FORM><INPUT TYPE='TEXT' ");
    document.write("VALUE='"location.search.substring(1)+"FORM>")
    //-SCRIPT>

    5。如何将一个字符串中的时间和当前时间做比较
    <SCRIPT LANGUAGE="JavaScript">
    /*其中的日期字符串可有以下格式:
       格式 1 : 19970529
       格式 2 : 970529
       格式 3 : 29/05/1997
       格式 4 : 29/05/97
       输入参数dateType是1到4的数字,表示使用哪种格式.
    */
    <!-
    function isitToday(dateString,dateType) {
        var now = new Date();
        var today = new Date(now.getYear(),now.getMonth(),now.getDate())

        if (dateType == 1)
            var date = new Date(dateString.substring(0,4),
                                dateString.substring(4,6)-1,
                                dateString.substring(6,8));
        else if (dateType == 2)
            var date = new Date(dateString.substring(0,2),
                                dateString.substring(2,4)-1,
                                dateString.substring(4,6));
        else if (dateType == 3)
            var date = new Date(dateString.substring(6,10),
                                dateString.substring(3,5)-1,
                                dateString.substring(0,2));
        else if (dateType == 4)
            var date = new Date(dateString.substring(6,8),
                                dateString.substring(3,5)-1,
                                dateString.substring(0,2));
        else
            return false;

        if (date.toString() == today.toString())
            return true;
        else
            return false;
    }
    调用的例子如下:
    if (isitToday("19970529",1)) alert('true'); else alert('false');
    if (isitToday("970529",2)) alert('true'); else alert('false');
    if (isitToday("29/05/1997",3)) alert('true'); else alert('false');
    if (isitToday("02/06/97",4)) alert('true'); else alert('false');
    //-
    </SCRIPT>

    6。如何根据一个人的生日计算他的岁数
    <SCRIPT LANGUAGE="JavaScript"><
    /*其中的日期字符串可有以下格式:
       格式 1 : 19970529
       格式 2 : 970529
       格式 3 : 29/05/1997
       格式 4 : 29/05/97
       输入参数dateType是1到4的数字,表示使用哪种格式.
    */
    function getAge(dateString,dateType) {
        var now = new Date();
        var today = new Date(now.getYear(),now.getMonth(),now.getDate())
        var yearNow = now.getYear();
        var monthNow = now.getMonth();
        var dateNow = now.getDate();

        if (dateType == 1)
            var dob = new Date(dateString.substring(0,4),
                                dateString.substring(4,6)-1,
                                dateString.substring(6,8));
        else if (dateType == 2)
            var dob = new Date(dateString.substring(0,2),
                                dateString.substring(2,4)-1,
                                dateString.substring(4,6));
        else if (dateType == 3)
            var dob = new Date(dateString.substring(6,10),
                                dateString.substring(3,5)-1,
                                dateString.substring(0,2));
        else if (dateType == 4)
            var dob = new Date(dateString.substring(6,8),
                                dateString.substring(3,5)-1,
                                dateString.substring(0,2));
        else
            return '';

        var yearDob = dob.getYear();
        var monthDob = dob.getMonth();
        var dateDob = dob.getDate();

        yearAge = yearNow - yearDob;

        if (monthNow > monthDob)
            var monthAge = monthNow - monthDob;
        else {
            yearAge--;
            var monthAge = 12 + monthNow -monthDob;
        }
        if (dateNow > dateDob)
            var dateAge = dateNow - dateDob;
        else {
            monthAge--;
            var dateAge = 31 + dateNow - dateDob;
        }

        return yearAge + ' years ' + monthAge + ' months ' + dateAge + ' days';
    }
    调用例子
    document.write(getAge("19650104",1)+'BR>')
    document.write(getAge("650104",2)+'BR>')
    document.write(getAge("04/01/1965",3)+'BR>')
    document.write(getAge("04/01/65",4)+'BR>')
    //-SCRIPT>

    7。如何使用下面的格式dd/mm/yy在网页中显示日期
    <SCRIPT LANGUAGE = 'JavaScript'>
    <!-
    var date = new Date();
    var d  = date.getDate();
    var day = (d < 10) ? '0' + d : d;
    var m = date.getMonth() + 1;
    var month = (m < 10) ? '0' + m : m;
    var yy = date.getYear();
    var year = (yy < 1000) ? yy + 1900 : yy;

    document.write(day + "/" + month + "/" + year);
    //-
    </SCRIPT>

    8。如何使用下面的格式date month year在网页中显示日期
    <SCRIPT LANGUAGE = 'JavaScript'>
    <!-
    function makeArray() {
         for (i = 0; i<makeArray.arguments.length; i++)
              this[i + 1] = makeArray.arguments[i];
    }

    var months = new makeArray('January','February','March',
        'April','May','June','July','August','September',
        'October','November','December');

    var date = new Date();
    var day  = date.getDate();
    var month = date.getMonth() + 1;
    var yy = date.getYear();
    var year = (yy < 1000) ? yy + 1900 : yy;

    document.write(day + " " + months[month] + " " + year);
    //-
    </SCRIPT>[page]

    9.如何让我的网页的最近更新日期更易读
    <SCRIPT LANGUAGE = 'JavaScript'><
    function makeArray0() {
         for (i = 0; i<makeArray0.arguments.length; i++)
              this[i] = makeArray0.arguments[i];
    }
    var days = new makeArray0("Sunday","Monday","Tuesday","Wednesday",
        "Thursday","Friday","Saturday");
    var months = new makeArray0('January','February','March',
        'April','May','June','July','August','September',
        'October','November','December');
    function nths(day) {
         if (day == 1 || day == 21 || day == 31)
              return 'st';
         else
              if (day == 2 || day == 22)
                   return 'nd';
                   if (day == 3 || day == 23)
                        return 'rd';
                   else return 'th';
    }
    function y2k(number) { return (number < 1000) ? number + 1900 : number; }
    var last = document.lastModified;
    var date = new Date(last);
    document.write("Last updated on " + days[date.getDay()] + ' ' +
        date.getDate() + nths(date.getDate()) + " " +
        months[date.getMonth()] + ", " +
        (y2k(date.getYear()) + "."
    //-SCRIPT>

    10。如何显示到某个特定日期的倒记时
    <SCRIPT LANGUAGE="JavaScript"><
    function y2k(number) { return (number < 1000) ? number + 1900 : number; }

    function timeTillDate(whenDay,whenMonth,whenYear) {
        var now = new Date();
        var thisDay = now.getDate(), thisMonth = now.getMonth() + 1, thisYear = y2k(now.getYear())
        var yearsDifference = whenYear - thisYear, monthsDifference = 0, daysDifference = 0, string = '';

        if (whenMonth >= thisMonth) monthsDifference = whenMonth - thisMonth;
        else { yearsDifference--; monthsDifference = whenMonth + 12 - thisMonth; }

        if (whenDay >= thisDay)daysDifference = whenDay - thisDay;
        else {
            if (monthsDifference > 0) monthsDifference--;
            else { yearsDifference--; monthsDifference+=11; }
            daysDifference = whenDay + 31 - thisDay;
        }

        if (yearsDifference < 0) return '';

        if ((yearsDifference == 0) && (monthsDifference == 0) && (daysDifference == 0))
            return '';

        if (yearsDifference > 0) {
            string = yearsDifference + ' year';
            if (yearsDifference > 1) string += 's';
            string += ' ';
        }

        if (monthsDifference > 0) {
            string += monthsDifference + ' month';
            if (monthsDifference > 1) string += 's';
            string += ' ';
        }
        if (daysDifference > 0) {
            string += daysDifference + ' day';
            if (daysDifference > 1) string += 's';
            string += ' ';
        }

        var difference = Date.UTC(now.getYear(),now.getMonth(),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds()) -
                         Date.UTC(now.getYear(),now.getMonth(),now.getDate(),0,0,0);

        difference = 1000*60*60*24 - difference;

        var hoursDifference = Math.floor(difference/1000/60/60);
        difference = difference - hoursDifference*1000*60*60
        var minutesDifference = Math.floor(difference/1000/60);
        difference = difference - minutesDifference*1000*60
        var secondsDifference = Math.floor(difference/1000);

        if (hoursDifference > 0) {
            string += hoursDifference + ' hour';
            if (hoursDifference > 1) string +='s';
            string += ' ';
        }

        if (minutesDifference > 0) {
            string += minutesDifference + ' minute';
            if (minutesDifference > 1) string +='s';
            string += ' ';
        }

        if (secondsDifference > 0) {
            string += secondsDifference + ' second';
            if (secondsDifference > 1) string +='s';
            string += ' ';
        }
        return string;
    }

    调用例子,例如现在到31/12/1999还有多久。
    document.write(timeTillDate(31,12,1999));
    //-SCRIPT>

    11。如何从一个日期中减掉几个小时
    <SCRIPT LANGUAGE = 'JavaScript'><
    var date = new Date();
    var date = new Date(Date.UTC(date.getYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds()) - 5*60*60*1000);
    document.write(date);
    //-SCRIPT>

    12。如何在一个日期中增加几个月后并能够正确显示出来
    <SCRIPT LANGUAGE="JavaScript"><
    function makeArray() {
        for (i = 0; i<makeArray.arguments.length; i++)
            this[i + 1] = makeArray.arguments[i];
    }
    var months = new makeArray('January','February','March','April',
                               'May','June','July','August','September',
                               'October','November','December');
    function nths(day) {
        if (day == 1 || day == 21 || day == 31) return 'st';
        else if (day == 2 || day == 22) return 'nd';
        else if (day == 3 || day == 23) return 'rd';
        else return 'th';
    }
    function y2k(number) { return (number < 1000) ? number + 1900 : number; }
    function monthsahead(noofmonths) {
        var today = new Date();
        var date = new Date(today.getYear(),today.getMonth() + noofmonths,today.getDate(),today.getHours(),today.getMinutes(),today.getSeconds())
        return date.getDate() + nths(date.getDate()) + ' ' + months[date.getMonth() + 1] + ' ' + y2k(date.getYear())
    }

    调用例子:
    document.write(monthsahead(6));
    //-SCRIPT>
  • 相关阅读:
    623. Add One Row to Tree 将一行添加到树中
    771. Jewels and Stones 珠宝和石头
    216. Combination Sum III 组合总数三
    384. Shuffle an Array 随机播放一个数组
    382. Linked List Random Node 链接列表随机节点
    向github项目push代码后,Jenkins实现其自动构建
    centos下安装Jenkins
    python提取批量文件内的指定内容
    批处理实现:批量为文件添加注释
    python抓取每期双色球中奖号码,用于分析
  • 原文地址:https://www.cnblogs.com/daxia/p/311338.html
Copyright © 2011-2022 走看看