`

JavaScript中的Date

    博客分类:
  • JS
阅读更多

最近弄东西用到了这个Date,在网上搜到了很多有用的资料,这里整理一下:

 

1、Date对象的构造函数:

a、创建Date对象:

var objDate=new Date([arguments list]);

其构造函数有一下五种形式:

new Date("month dd,yyyy hh:mm:ss");
new Date("month dd,yyyy");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);

 

b、说明:

month:用英文表示月份名称,从January到December
mth:用整数表示月份,从0(1月)到11(12月)

dd:表示一个月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm:分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数,表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。

 

c、测试:

<script type="text/javascript">
document.write("<br/>" + new Date("February 3,2009"));  
document.write("<br/>" + new Date("February 3,2009 10:52:03"));  
document.write("<br/>");  
document.write("<br/>" + new Date(2009,1,3));  
document.write("<br/>" + new Date(2009,1,3,10,52,03));  
document.write("<br/>");  
document.write("<br/>" + new Date(Date.parse("February 3,2009")));  
document.write("<br/>" + new Date(Date.parse("February 3,2009 10:52:03")));  
document.write("<br/>" + new Date(Date.parse(2009,1,3)));
document.write("<br/>" + new Date(Date.parse(2009,1,3,10,52,03))); 
document.write("<br/>" + new Date(Date.parse("2009/02/03")));  
document.write("<br/>");  
document.write("<br/>" + new Date("2009/02/03"));  
document.write("<br/>" + new Date("2009/02/03 11:12:13"));  
document.write("<br/>" + new Date("2009-02-03"));
</script>

 结果:

Tue Feb 03 2009 00:00:00 GMT+0800
Tue Feb 03 2009 10:52:03 GMT+0800

Tue Feb 03 2009 00:00:00 GMT+0800
Tue Feb 03 2009 10:52:03 GMT+0800

Tue Feb 03 2009 00:00:00 GMT+0800
Tue Feb 03 2009 10:52:03 GMT+0800
Thu Jan 01 2009 08:00:00 GMT+0800
Thu Jan 01 2009 08:00:00 GMT+0800
Tue Feb 03 2009 00:00:00 GMT+0800

Tue Feb 03 2009 00:00:00 GMT+0800
Tue Feb 03 2009 11:12:13 GMT+0800
Tue Feb 03 2009 08:00:00 GMT+0800 

 

原文链接:http://blog.csdn.net/xxd851116/article/details/3859587

 

2、Date的对象方法:

方法 描述
Date() 返回当日的日期和时间。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。
getYear() 请使用 getFullYear() 方法代替。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setYear() 请使用 setFullYear() 方法代替。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource() 返回该对象的源代码。
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 请使用 toUTCString() 方法代替。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf() 返回 Date 对象的原始值。

 

原文链接:http://www.w3school.com.cn/jsref/jsref_obj_date.asp

 

3、日期时间脚本库方法列表:

Date.prototype.isLeapYear 判断闰年
Date.prototype.Format 日期格式化
Date.prototype.DateAdd 日期计算
Date.prototype.DateDiff 比较日期差
Date.prototype.toString 日期转字符串
Date.prototype.toArray 日期分割为数组
Date.prototype.DatePart 取日期的部分信息
Date.prototype.MaxDayOfDate 取日期所在月的最大天数
Date.prototype.WeekNumOfYear 判断日期所在年的第几周
StringToDate 字符串转日期型
IsValidDate 验证日期有效性
CheckDateTime 完整日期时间检查
daysBetween 日期天数差

JS 代码:

/**
* 判断润年
* */ 
Date.prototype.isLeapYear = function(){  
    return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));  
}  

/**
* 日期格式化
* YYYY/yyyy/YY/yy 表示年份
* MM/M 月份
* W/w 星期 
* dd/DD/d/D 日期
* hh/HH/h/H 时间
* mm/m 分钟
* ss/SS/s/S 秒 
* */ 
Date.prototype.Format = function(formatStr){  
    var str = formatStr;  
    var Week = ['日','一','二','三','四','五','六']; 
 
    str=str.replace(/yyyy|YYYY/,this.getFullYear());  
    str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100));  
 
    str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0' + this.getMonth());  
    str=str.replace(/M/g,this.getMonth());  
 
    str=str.replace(/w|W/g,Week[this.getDay()]);  
 
    str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());  
    str=str.replace(/d|D/g,this.getDate());  
 
    str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());  
    str=str.replace(/h|H/g,this.getHours());  
    str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());  
    str=str.replace(/m/g,this.getMinutes());  
 
    str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds());  
    str=str.replace(/s|S/g,this.getSeconds());  
 
    return str;  
}  
 
/**
* 求两个时间的天数差 日期格式为 YYYY-MM-dd 
* */ 
function daysBetween(DateOne,DateTwo){  
    var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-')); 
    var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1); 
    var OneYear = DateOne.substring(0,DateOne.indexOf ('-')); 
 
    var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-')); 
    var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1); 
    var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-')); 
 
    var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);  
    return Math.abs(cha); 
} 
 
/**
* 日期计算
* */
Date.prototype.DateAdd = function(strInterval, Number){  
    var dtTmp = this; 
    switch (strInterval) {  
        case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number)); 
        case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number)); 
        case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number)); 
        case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number)); 
        case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number)); 
        case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
        case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
        case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
    } 
} 

/**
* 比较日期差 dtEnd 格式为日期型或者 有效日期格式字符串
* */
Date.prototype.DateDiff = function(strInterval, dtEnd){  
    var dtStart = this; 
    if (typeof dtEnd == 'string' )//如果是字符串转换为日期型 
    {  
        dtEnd = StringToDate(dtEnd); 
    } 
    switch (strInterval) {  
        case 's' :return parseInt((dtEnd - dtStart) / 1000); 
        case 'n' :return parseInt((dtEnd - dtStart) / 60000); 
        case 'h' :return parseInt((dtEnd - dtStart) / 3600000); 
        case 'd' :return parseInt((dtEnd - dtStart) / 86400000); 
        case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7)); 
        case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); 
        case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear(); 
    } 
} 

/**
* 日期输出字符串,重载了系统的toString方法
* */
Date.prototype.toString = function(showWeek){  
    var myDate= this; 
    var str = myDate.toLocaleDateString(); 
    if (showWeek) 
    {  
        var Week = ['日','一','二','三','四','五','六']; 
        str += ' 星期' + Week[myDate.getDay()]; 
    } 
    return str; 
} 

/**
* 日期合法性验证 
* 格式为:YYYY-MM-DD或YYYY/MM/DD 
* */
function IsValidDate(DateStr){  
    var sDate=DateStr.replace(/(^\s+|\s+$)/g,''); //去两边空格;  
    if(sDate=='') return true;  
    //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''  
    //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式  
    var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');  
    if (s=='') //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D  
    {  
        var t=new Date(sDate.replace(/\-/g,'/'));  
        var ar = sDate.split(/[-/:]/);  
        if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())  
        {  
            //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');  
            return false;  
        }  
    }  
    else  
    {  
        //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');  
        return false;  
    }  
    return true;  
}  

/**
* 日期时间检查 
* 格式为:YYYY-MM-DD HH:MM:SS 
* */
function CheckDateTime(str){  
    var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;  
    var r = str.match(reg);  
    if(r==null)return false;  
    r[2]=r[2]-1;  
    var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);  
    if(d.getFullYear()!=r[1])return false;  
    if(d.getMonth()!=r[2])return false;  
    if(d.getDate()!=r[3])return false;  
    if(d.getHours()!=r[4])return false;  
    if(d.getMinutes()!=r[5])return false;  
    if(d.getSeconds()!=r[6])return false;  
    return true;  
}  
 
/**
* 把日期分割成数组
* */
Date.prototype.toArray = function(){  
    var myDate = this; 
    var myArray = Array(); 
    myArray[0] = myDate.getFullYear(); 
    myArray[1] = myDate.getMonth(); 
    myArray[2] = myDate.getDate(); 
    myArray[3] = myDate.getHours(); 
    myArray[4] = myDate.getMinutes(); 
    myArray[5] = myDate.getSeconds(); 
    return myArray; 
} 
 
/**
* 取得日期数据信息 
* @param interval:表示数据类型
* @param  y 年 m月 d日 w星期 ww周 h时 n分 s秒
* */
Date.prototype.DatePart = function(interval){  
    var myDate = this; 
    var partStr=''; 
    var Week = ['日','一','二','三','四','五','六']; 
    switch (interval) 
    {  
        case 'y' :partStr = myDate.getFullYear();break; 
        case 'm' :partStr = myDate.getMonth()+1;break; 
        case 'd' :partStr = myDate.getDate();break; 
        case 'w' :partStr = Week[myDate.getDay()];break; 
        case 'ww' :partStr = myDate.WeekNumOfYear();break; 
        case 'h' :partStr = myDate.getHours();break; 
        case 'n' :partStr = myDate.getMinutes();break; 
        case 's' :partStr = myDate.getSeconds();break; 
    } 
    return partStr; 
} 
  
/**
* 取得当前日期所在月的最大天数
* */
Date.prototype.MaxDayOfDate = function(){  
    var myDate = this; 
    var ary = myDate.toArray(); 
    var date1 = (new Date(ary[0],ary[1]+1,1)); 
    var date2 = date1.dateAdd(1,'m',1); 
    var result = dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd')); 
    return result; 
} 
 
/**
* 取得当前日期所在周是一年中的第几周
* */
Date.prototype.WeekNumOfYear = function(){  
    var myDate = this; 
    var ary = myDate.toArray(); 
    var year = ary[0]; 
    var month = ary[1]+1; 
    var day = ary[2]; 
    document.write('< script language=VBScript\> \n'); 
    document.write('myDate = DateValue(''+month+'-'+day+'-'+year+'') \n'); 
    document.write('result = DatePart('ww', myDate) \n'); 
    document.write(' \n'); 
    return result; 
} 
 
/**
* 字符串转成日期类型
* 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd
* */
function StringToDate(DateStr){  
 
    var converted = Date.parse(DateStr); 
    var myDate = new Date(converted); 
    if (isNaN(myDate)) 
    {  
        //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-'; 
        var arys= DateStr.split('-'); 
        myDate = new Date(arys[0],--arys[1],arys[2]); 
    } 
    return myDate; 
} 

 
/**
* 今天
* */
function countDay(){
    myDate = new Date();
    var todadys= myDate.getFullYear()+'-'+(parseInt(myDate.getMonth())+1)+'-'+myDate.getDate()+' 00:00:00';
    var todadye= myDate.getFullYear()+'-'+(parseInt(myDate.getMonth())+1)+'-'+myDate.getDate()+' 23:59:59';
    ......
    }

/**
* 本月
* */
function countMonth(){
var d  = new  Date();   
d =  new  Date(d.getFullYear(),d.getMonth()+1,0);
var months= myDate.getFullYear()+'-'+(parseInt(myDate.getMonth())+1)+'-'+'01 00:00:00';
var monthe= myDate.getFullYear()+'-'+(parseInt(myDate.getMonth())+1)+'-'+d.getDate()+' 23:59:59';
......
}

 原文链接:http://weina.iteye.com/blog/461234

 

 

分享到:
评论

相关推荐

    javascript中Date对象的使用总结.docx

    ### JavaScript中Date对象的使用总结 #### 概述 JavaScript 的 `Date` 对象用于处理日期和时间。本文档详细介绍了 `Date` 对象的基本使用方法及其提供的多种实用功能,帮助开发者更好地理解和应用这一核心对象。 ...

    javascript中Date对象的getDay方法使用指南.docx

    ### JavaScript中Date对象的getDay方法使用指南 #### 一、getDay方法简介 在JavaScript中,`Date`对象提供了一系列的方法用于处理日期和时间。其中`getDay()`方法是其中一个非常实用的功能,它用于获取指定日期是...

    javascript中Date对象应用之简易日历实现_.docx

    ### JavaScript中Date对象应用之简易日历实现 #### 前言 简易日历作为JavaScript中Date对象的一个典型应用场景,在日常开发中具有重要的实用价值。本文将详细介绍如何使用JavaScript中的Date对象来实现一个简易的...

    javascript中Date对象应用之简易日历实现.docx

    javascript中Date对象应用之简易日历实现.docx

    javascript中Date format(js日期格式化)方法小结.docx

    ### JavaScript中的Date Format(JS日期格式化)方法详解 #### 概述 在日常的Web开发工作中,我们经常需要处理日期和时间相关的数据。JavaScript 的 `Date` 对象提供了多种方法来获取和设置日期时间,但原生 API 并...

    javascript中Date对象的getDay方法使用指南

    Date对象有个getDay方法,它根据本地时间,返回一个具体日期中一周的第几天。返回值从0~6,分别对应周日~周六 getDay 0 1 2 3 4 5 6 星期几 周日 周一 周二 周三 周四 周五 周六 用到日期相关的需求时...

    JavaScript之Date对象(源代码)

    JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象(源代码)JavaScript之Date对象...

    JavaScript 中Date对象的格式化代码方法汇总

    很多时候,我们可以利用JavaScript中Date对象的内置方法来格式化,如: var d = new Date(); console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间) console.log(d.toDateString()); // 日期...

    javascript中对Date类型的常用操作小结_.docx

    ### JavaScript中Date类型常用操作详解 #### 一、概述 在JavaScript编程中,处理日期与时间是一项常见且重要的任务。JavaScript 提供了内置的 `Date` 对象来帮助开发者进行日期与时间的操作。本文将详细介绍一些...

    javascript中Date format(js日期格式化)方法小结

    在JavaScript中,日期格式化是将Date对象转换成特定字符串格式的过程。这通常涉及到自定义日期的显示方式,如年、月、日、小时、分钟、秒等。本篇文章将重点介绍两种常见的JavaScript日期格式化技巧。 方法一: 这...

    JavaScript日期操作技术解析与实践应用

    内容概要:本文介绍了如何使用 JavaScript 中的 Date 对象获取各种与日期相关的信息。主要内容包括获取当前一周的所有日期、获取当月所有日期、获取当月的总天数、计算两个日期之间的差异、获取未来若干天的具体日期...

    javascript中Date()函数在各浏览器中的显示效果

    JavaScript中的Date对象是用于处理日期和时间的一个内置对象,它允许你在脚本中进行日期时间的创建和操作。然而,由于JavaScript的Date对象在不同浏览器中可能会有不同的表现,这就导致了在进行Web开发时需要特别...

    原生JS:Date对象全面解析

    原生JavaScript中的Date对象是一个非常重要的内置对象,它提供了多种处理日期和时间的方法。本文将详细解析Date对象的构造函数用法、日期时间的表示以及一些相关的静态方法。 首先,Date对象是基于1970年1月1日...

    JavaScript中Date对象的常用方法示例

    JavaScript是目前非常流行的前端开发脚本语言,而Date对象是JavaScript中处理日期和时间的核心工具,它提供了一系列的内置方法来执行各种日期操作。对于初学者来说,了解并掌握Date对象的常用方法对于开发中处理日期...

    javascript中Date对象的使用总结

    JavaScript中的Date对象是处理日期和时间的核心工具,它提供了丰富的内置方法来获取和操作日期的各种组件。在处理从服务器返回的JSON数据时,经常会遇到特殊格式的日期,如`/Date(1379944571737)/`。这种格式实际上...

    Javascript中Date类型和Math类型详解

    在JavaScript中,Date类型和Math类型是非常基础且重要的数据类型,它们分别用于处理日期时间的计算和数学运算。本文将详细介绍这两种类型的使用方法和相关的知识点。 首先,我们来探讨Date类型。Date类型在...

Global site tag (gtag.js) - Google Analytics