zoukankan      html  css  js  c++  java
  • JavaScript中的Date类型

      ECMAScript中的Date类型是在早起Java中的java.util.Date类基础上构建的。为此,Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日0时开始经过的毫秒数来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的100000000年。

      要创建一个日期对象,使用new操作符合Date构造函数即可。

    var now = new Date();

      在调用Date构造函数而不传参的情况下,新创建的对象自动获取当前日期和时间。如果想根据特定的日期和时间创建日期对象,必须传入表示该日期的毫秒数(1970年1月1日0时至该日期止经过的毫秒数)。

      

      ECMAScript提供了两个方法:Date.parse()和Date.UTC()。

      Date.parse()

      Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数。ECMA-262没有定义Date.parse()应该支持哪种日期格式,因此这个方法的行为因实现而异。将地区设置为美国的浏览器通常都接受下列日期格式:

      ♦ "月/日/年",如9/7/2017;

      ♦ "英文月名 日,年",如January 12,2004;

      ♦ "英文星期几英文月名 日 年 时:分:秒 时区",如Thur September 7 2017 00:00:00 GMT-0700。

      ♦ ISO 8601扩展格式YYYY-MM-DDTHH:mm:ss.sssZ(例如 2017-09-07T00:00:00)。只有兼容ECMAScript 5的实现支持这种格式。

      例如,要为2017年9月7日创建一个日期对象,可以使用下面的代码:

    var someDate = new Date(Date.parse("September 7,2017"));

      如果传入Date.parse()方法的字符串不能表示日期,那么它会返回NaN。实际上,如果直接将表示日期的字符串传递给Date构造函数,也会在后台调用Date.parse()。例如:

    var someDate = new Date("September 7,2017");

      

      Date.UTC()

      Date.UTC()方法同样也返回表示日期的毫秒数,但它与Date.parse()在构建值时使用不同的信息。Date.UTC()的参数分别是年份、基于0的月份(一月是0,二月是1)、月中的哪一天(1到31)、小时数(0到23)、分钟、秒以及毫秒数。在这些参数中,只有前两个参数(年和月)是必需的。如果没有提供月中的天数,则假设天数为1;如果省略其他参数,则统统假设为0。

    //GMT时间2000年1月1日午夜零时
    var y2k = new Date(Date.UTC(2000,0));
    
    //GMT时间2005年5月5日下午5:55:55
    var allFives = new Date(Date.UTC(2005,4,5,17,55,55));

      跟Date.parse()一样,Date构造函数也会模仿Date.UTC(),但有一点明显不同;日期和时间都基于本地时区而非GMT创建。

      ECMAScript 5添加了Date.now()方法,返回表示调用这个方法时的日期和时间的毫秒数。这个方法简化了使用Date对象分析代码的工作。

    //取得开始时间
    var start = Date.now();
    
    //调用函数
    doSomething();
    
    //取得停止时间
    var stop = Date.now(),result = stop - start;

      支持Date.now()方法的浏览器包括IE9+、Firefox 3+、Safari 3+、Opera 10.5和Chrome。在不支持它的浏览器中,使用+操作符获取Date对象的时间戳,也可以达到同样的目的。

    //取得开始时间
    var start = +new Date();
    
    //调用函数
    doSomething();
    
    //取得停止时间
    var stop = +new Date(),result = stop - start;

      日期格式化方法

      Date类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下:

      ♦ toDateString()——以特定于实现的格式显示星期几、月、日和年;

      ♦ toTimeString()——以特定于实现的格式显示时、分、秒和时区;

      ♦ toLocaleDateString()——以特定于地区的格式显示星期几、月、日和年;

      ♦ toLocaleTimeString()——以特定于实现的格式显示时、分、秒;

      ♦ toUTCString()——以特定于实现的格式完整的UTC日期。

      Date类型的方法

      ♦ getTime():返回表示日期的毫秒数;与valueOf()方法返回的值相同

      ♦ setTime(毫秒):一毫秒数设置日期,会改变整个日期

      ♦ getFullYear():取得4位数的年份

      ♦ getUTCFullYear():返回URC日期的4位数年份

      ♦ setFullYear(年):设置日期的年份。传入的年份值必须是4位数字。

      ♦ setUTCFullYear(年):设置UTC日期的年份。传入的年份值必须是4位数字。

      ♦ getMonth():返回日期中的月份,其中0表示一月,11表示十二月。

      ♦ getUTCMonth():返回UTC日期中的月份,其中0表示一月,11表示十二月。

      ♦ setMonth(月):设置日期的月份。传入的月份值必须大于0,超过11则增加年份

      ♦ setUTCMonth(月):设置UTC日期的月份。传入的月份值必须大于0,超过11则增加年份

      ♦ getDate():返回日期月份中的天数(1到31)

      ♦ getUTCDate():返回UTC日期月份中的天数(1到31)

      ♦ setDate(日):设置日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份。

      ♦ setUTCDate(日):设置UTC日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份。

      ♦ getDay():返回日期中星期的星期几(其中0表示星期日,6表示星期六)

      ♦ getUTCDay():返回UTC日期中星期的星期几(其中0表示星期日,6表示星期六)

      ♦ getHours():返回日期中的小时数(0到23)

      ♦ getUTCHours():返回UTC日期中的小时数(0到23)

      ♦ setHours(时):设置日期中的小时数。传入的值超过了23则增加月份中的天数

      ♦ setUTCHours(时):设置UTC日期中的小时数。传入的值超过了23则增加月份中的天数

      ♦ getMinutes():返回日期中的分钟数(0到59)

      ♦ getUTCMinutes():返回UTC日期中的分钟数(0到59)

      ♦ setMinutes(分):设置日期中的分钟数。传入的值超过59则增加小时数

      ♦ setUTCMinutes(分):设置UTC日期中的分钟数。传入的值超过59则增加小时数

      ♦ getSeconds():返回日期中的秒数(0到59)

      ♦ getUTCSeconds():返回UTC日期中的秒数(0到59)

      ♦ setSeconds(秒):设置日期中的秒数。传入的值超过59则增加分钟数

      ♦ setUTCSeconds(秒):设置UTC日期中的秒数。传入的值超过59则增加分钟数

      ♦ getMilliseconds():返回日期中的毫秒数

      ♦ getUTCMilliseconds():返回UTC日期中的毫秒数

      ♦ setMilliseconds(毫秒):设置日期中的毫秒数

      ♦ setUTCMilliseconds(毫秒):设置UTC日期中的毫秒数

      ♦ getTimezoneOffset():返回本地时间与UTC时间相差的分钟数。例如,美国东部标准时间返回300;中国标准时间返回-480。

  • 相关阅读:
    C语言程序设计 第二章 数据类型
    C语言程序设计 认识函数
    趣味c语言编程100例(三)
    如何使用 Eset Nod32通行证批量获取精灵
    C语言程序设计 使用库函数参考手册
    C语言程序设计 概述
    C语言程序设计 VC6调试程序(视频)
    趣味c语言编程100例(四)
    java WebService 异常
    数据库战略高度解析(2) 数据库驱动程序
  • 原文地址:https://www.cnblogs.com/weilan/p/7490958.html
Copyright © 2011-2022 走看看