天天看點

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);

86oo精彩教程

    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;

http://www.86oo.com

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">< www.86oo.com

document.write("<FORM><INPUT TYPE='TEXT' ");

document.write("VALUE='"location.search.substring(1)+"FORM>")

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,

86oo.com

                            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),

        return false;

    if (date.toString() == today.toString())

        return false; 您所浏覽的文章來自86oo.com

調用的例子如下:

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。如何根據一個人的生日計算他的歲數

function getAge(dateString,dateType) {

    var yearNow = now.getYear();

    var monthNow = now.getMonth();

歡迎各位通路86oo.com

    var dateNow = now.getDate();

        var dob = new Date(dateString.substring(0,4),

        var dob = new Date(dateString.substring(0,2),

        var dob = new Date(dateString.substring(6,10),

        var dob = new Date(dateString.substring(6,8),

                            dateString.substring(0,2)); 86oo精彩教程

        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;

        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>')

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);

8。如何使用下面的格式date month year在網頁中顯示日期

<SCRIPT LANGUAGE = 'JavaScript'> 86oo.com提供各類教程

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 day  = date.getDate();

var month = date.getMonth() + 1;

document.write(day + " " + months[month] + " " + year);

9.如何讓我的網頁的最近更新日期更易讀

<SCRIPT LANGUAGE = 'JavaScript'><

function makeArray0() {

     for (i = 0; i<makeArray0.arguments.length; i++)

          this[i] = makeArray0.arguments[i];

86oo.com歡迎你

var days = new makeArray0("Sunday","Monday","Tuesday","Wednesday",

    "Thursday","Friday","Saturday");

var months = new makeArray0('January','February','March',

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';

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()) + "."

10。如何顯示到某個特定日期的倒記時

function timeTillDate(whenDay,whenMonth,whenYear) {

    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;

        if (monthsDifference > 0) monthsDifference--;

        else { yearsDifference--; monthsDifference+=11; }

        daysDifference = whenDay + 31 - thisDay;

    if (yearsDifference < 0) return '';

    if ((yearsDifference == 0) && (monthsDifference == 0) && (daysDifference == 0))

    if (yearsDifference > 0) {

        string = yearsDifference + ' year'; 86oo.com提供各類教程

        if (yearsDifference > 1) string += 's';

        string += ' ';

    if (monthsDifference > 0) {

        string += monthsDifference + ' month';

        if (monthsDifference > 1) string += 's';

    if (daysDifference > 0) {

        string += daysDifference + ' day';

        if (daysDifference > 1) string += 's';

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

您所浏覽的文章來自86oo.com

                     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';

www.86oo.com

    if (minutesDifference > 0) {

        string += minutesDifference + ' minute';

        if (minutesDifference > 1) string +='s';

    if (secondsDifference > 0) {

        string += secondsDifference + ' second';

        if (secondsDifference > 1) string +='s';

    return string;

調用例子,例如現在到31/12/1999還有多久。

document.write(timeTillDate(31,12,1999));

11。如何從一個日期中減掉幾個小時

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);

12。如何在一個日期中增加幾個月後并能夠正确顯示出來

    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');

    if (day == 1 || day == 21 || day == 31) return 'st';

    else if (day == 2 || day == 22) return 'nd'; 86oo.com

    else if (day == 3 || day == 23) return 'rd';

    else return 'th';

function monthsahead(noofmonths) {

    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));

繼續閱讀