欢迎光临
我们一直在努力

以前收集的一些资料—JS中处理日期的一些函数和方法

建站超值云服务器,限时71元/月

                javascript日期处理函数大全
其实还很不全,呵呵,比起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);
    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>

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>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 以前收集的一些资料—JS中处理日期的一些函数和方法
分享到: 更多 (0)

相关推荐

  • 暂无文章