zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    MyBatis 笔记
    Python os模块、os.path模块常用方法
    vue-lazyload 的使用(vue图片懒加载)
    使用 vant 的 v-lazy 实现图片 vue 在移动端的懒加载
    代码注释规范-IDEA 配置 Java 类方法注释模板
    Java Web 笔记(杂)
    tortoisegit使用
    git结合github远程仓库使用
    .doc 2 .docx可用代码
    惊奇,MySQL还能正则匹配,简易例子
  • 原文地址:https://www.cnblogs.com/yamajia/p/571939.html
Copyright © 2011-2022 走看看