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

js基础:JavaScript日期处理函数大全

admin
2010年8月18日 12:2 本文热度 5360
其实还很不全,呵呵,比起VBS来还是少点的。但是考虑到
有人经常问到有关如何使用JS处理日期的问题,我只好献拙了。
希望能够有点用处。
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.com提供各类教程
     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; 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"><
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, http://www.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),
                             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>

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>

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