• 第九章 时间与日期


    ECMAScript提供了Date类型来处理时间和日期。Date类型内置一系列获取和设置日期时间信息的方法。

    一.Date类型

    ECMAScript中的Date类型是在早期Java中java.util.Date类基础上构建的。为此,Date类型使用UTC(CoordinatedUniversalTime,国际协调时间[又称世界统一时间])1970年1月1日午夜(零时)开始经过的毫秒来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285616年。
    创建一个日期对象,使用new运算符和Date构造方法(构造函数)即可。
    var time=new Date();//创建了一个日期对象,构造方法里面可以传参数,指定时间,如果没有传,就是默认当前的时间
    在调用Date构造方法而不传递参数的情况下,新建的对象自动获取当前的时间和日期。
    ECMAScript提供了两个方法,Date.parse()和Date.UTC()。Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应的毫秒数。ECMA-262没有定义Date.parse()应该支持哪种日期格式,因此方法的行为因实现而异,因地区而异。默认通常接收的日期格式如下:
    1.'月/日/年',如6/13/2011;
    2.'英文月名 日, 年',如 May25,2004;
    3.'英文星期几 英文月名 日 年 时:分:秒 时区',如TueMay25200400:00:00GMT-070
    alert(Date.parse('6/13/2011')); //1307894400000
    如果Date.parse()没有传入或者不是标准的日期格式,那么就会返回NaN。
    alert(Date.parse()); //NaN
    如果想输出指定的日期,那么把Date.parse()传入Date构造方法里。
    alert(Date.parse('4/12/2007')); //返回的是一个毫秒数1176307200000
    var time = new Date(Date.parse('4/12/2007')); //把毫秒数转换成看的懂的时间
    alert(time); //Thu Apr 12 2007 00:00:00 GMT+0800
    Date.UTC()方法同样也返回表示日期的毫秒数,但它与Date.parse()在构建值时使用不同的信息。(年份,基于0的月份[0表示1月,1表示2月],月中的哪一天[1-31],小时数[0-23],分钟,秒以及毫秒)。只有前两个参数是必须的。如果没有提供月数,则天数为1;如果省略其他参数,则统统为0.
    alert(Date.UTC(2011,11)); //1322697600000
    如果Date.UTC()参数传递错误,那么就会出现负值或者NaN等非法信息。
    alert(Date.UTC()); //负值或者NaN
    如果要输出指定日期,那么直接把Date.UTC()传入Date构造方法里即可。
    var time=new Date(Date.UTC(2011,11,5,15,13,16));

    二.通用的方法

    与其他类型一样,Date类型也重写了toLocaleString()、toString()和valueOf()方法;但这些方法返回值与其他类型中的方法不同。
    var time= new Date(2007, 10, 15, 17, 22, 45, 15);
    alert(time); //Thu Nov 15 2007 17:22:45 GMT+0800
    alert('toString:' + time.toString()); //Thu Nov 15 2007 17:22:45 GMT+0800
    alert('toLocaleString:' + time.toLocaleString());//2007-11-15 17:22:45
    alert('valueOf:' + time.valueOf());//1195118565015

    三.日期格式化方法

    var time=newDate();
    alert(time.toDateString()); //以特定的格式显示星期几、月、日和年
    alert(time.toTimeString()); //以特定的格式显示时、分、秒和时区
    alert(time.toLocaleDateString()); //以特定地区格式显示星期几、月、日和年
    alert(time.toLocaleTimeString()); //以特定地区格式显示时、分、秒和时区
    alert(time.toUTCString()); //以特定的格式显示完整的UTC日期。

    四.组件方法

    组件方法,是为我们单独获取你想要的各种时间/日期而提供的方法。需要注意的时候,这些方法中,有带UTC的,有不带UTC的。UTC日期指的是在没有时区偏差的情况下的日期值。
    alert(time.getTime()); //获取日期的毫秒数,和valueOf()返回一致
    alert(time.setTime(100)); //以毫秒数设置日期,会改变整个日期
    alert(time.getFullYear()); //获取四位年份
    alert(time.setFullYear(2012)); //设置四位年份,返回的是毫秒数
    alert(time.getMonth()); //获取月份,没指定月份,从0开始算起
    alert(time.setMonth(11)); //设置月份
    alert(time.getDate()); //获取日期
    alert(time.setDate(8)); //设置日期,返回毫秒数
    alert(time.getDay()); //返回星期几,0表示星期日,6表示星期六
    alert(time.setDay(2)); //设置星期几
    alert(time.getHours()); //返回时
    alert(time.setHours(12)); //设置时
    alert(time.getMinutes()); //返回分钟
    alert(time.setMinutes(22)); //设置分钟
    alert(time.getSeconds()); //返回秒数
    alert(time.setSeconds(44)); //设置秒数
    alert(time.getMilliseconds()); //返回毫秒数
    alert(time.setMilliseconds()); //设置毫秒数
    alert(time.getTimezoneOffset()); //返回本地时间和UTC时间相差的分钟数

  • 相关阅读:
    LightOJ1002 分类: 比赛 最短路 2015-08-08 15:57 15人阅读 评论(0) 收藏
    DZY Loves Chemistry 分类: CF 比赛 图论 2015-08-08 15:51 3人阅读 评论(0) 收藏
    周赛-DZY Loves Chessboard 分类: 比赛 搜索 2015-08-08 15:48 4人阅读 评论(0) 收藏
    周赛-Equidistant String 分类: 比赛 2015-08-08 15:44 6人阅读 评论(0) 收藏
    周赛-Toy Cars 分类: 比赛 2015-08-08 15:41 5人阅读 评论(0) 收藏
    A Knight's Journey 分类: POJ 搜索 2015-08-08 07:32 2人阅读 评论(0) 收藏
    哈希-4 Values whose Sum is 0 分类: POJ 哈希 2015-08-07 09:51 3人阅读 评论(0) 收藏
    哈希-Gold Balanced Lineup 分类: POJ 哈希 2015-08-07 09:04 2人阅读 评论(0) 收藏
    哈希-Snowflake Snow Snowflakes 分类: POJ 哈希 2015-08-06 20:53 2人阅读 评论(0) 收藏
    欧拉通路-Play on Words 分类: POJ 图论 2015-08-06 19:13 4人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/xchit/p/JavaScript_9.html
Copyright © 2020-2023  润新知