zoukankan      html  css  js  c++  java
  • 《JavaScript 高级程序设计》学习总结五(3)

    引言:前面两节我对 Object 与数组Array 及其方法进行了总结,篇幅很长,总结完后我感觉还是要多开几节来对第五章进行分节总结,不然排版的知识点看着的确是有些混乱。

         总结的学习的确是很痛苦并快乐的,痛苦在于知识点真的很多,总结起来很累,如何选取精简的内容,怎么排版都是考虑之中。而快乐之处在于,总结知识点往往能让我静下来重新看待这些问题,然后温故而知新。总之,学习的道路是没有捷径的。这期间我也意识到,以前我以为看完一本书就是目标,往往那时候一本书看完自己是学不到什么的,如今恍然大悟,其实,我们学习的出发点不是看完一本书或者是看书,而是从书本里学习到知识,那才是我们看书的目的。

    Date类型:

      ECMAScript 中的Date 类型是在早起的 java .util.Dtae类型上构建的,所以 Date类型也是用“国际协调时间”,1970年1月1日 开始经过的毫秒数来保存日期。

    创建Date对象:var now =new Date();

     在调用 Date 构造函数而不传参的情况下,新创建的对象自动获得当前时间,如果想要获得指定时间,必须传递毫秒数(从1970年1月1日 开始计算的毫秒数),这样的方法十分麻烦。所以为了简化这一过程,ECMAScript 创建了两个方法:Date.parse( ) 和 Date.UTC( )。

      Date.parse() 接收一个表示日期的字符串参数,然后根据这个参数返回相应的毫秒数。ECMA-262 没有定义 这个函数需要哪种固定的日期格式,所以这个方法的结果会因实际情况而异。

    如果传入的参数字符串不能表示时间,则会返回NaN。 但是我们在 Date构造函数传递时间参数,那么在回台也会自动调用 Date.parse()。

    例如: var now= new Date("2018/8/8"); 

       Date.UTC(): 方法同样也返回表示日期的毫秒数,但是它与Date.parse() 构建值时使用不同的信息,Date.UTC () 的参数分别是年份,基于0的月份(一月是0 ,二月是1 以此类推)。月份是 1——31,小时是 1——23.秒以毫秒数。在这些参数中只有年数和月份是必须的。如果没有设定天数则假设天数为1 。其他参数省略的话,则默认为 0 。

    举个例子:var now=new Date(Date.UTC(2018,0,1));   //Mon Jan 01 2018 08:00:00 GMT+0800  可以看到 0 是1月。

    PS:ECMAScript 5 添加了Date.now():方法,返回调用这个方法时的日期和时间的毫秒数。所以我们可以在某段代码开始时调用这个函数。结束时有调用这个函数,然后二者相减就可以得出函数运行时间了。支持这个方法的函数有 IE9+、Firefox 3+、Safari3+、Opera10.5、和Chrome。

    而不支持的浏览器可以用:var start =+new Date(); (使用+ 操作符转成字符串来操作。)

    Date类型的继承的方法:

    与其他类型一样,Date类型也重写了 toLocaleString()、toString()、和valueOf() 方法。但这些方法返回的值与其他类型不同。 Date类型的 toLocaleString()会按照与浏览器设置地区相适应的格式返回日期时间。

    而其 toString() 则通常返回带有时区信息的日期和时间。(我个人理解:其实说那么多,toLocalseString() 不就是我们前面说过的根据环境返回值么)

    至于 valueOf() 则不返回字符串,而是返回日期的毫秒数,例如:

    var now=new Date(Date.UTC(2018,1,1));
    alert(now.valueOf());// 1517443200000

     日期的格式化方法:

    Date类型还有一些专门用来将日期格式化的方法:

    1、toDateString()——以特定格式显示时间(星期、月、日、年)。

    2、toTimeString()——以特定格式显示时间(时、分、秒和时区)。

    3、toLocaleString()——以特定时区显示时间(星期、月、日、年)。

    4、toLocalseTIme()——以特定时区显示时间(时、分、秒)。

    5、toUTCString()——以特定格式显示UTC时间。

    非常让人值得吐槽的是这些方法的输出也和浏览器而异。所以显示的内容会因为浏览器不同而不一样。

    日期 / 时间组件方法:

    到目前为止,剩下还未介绍的 Date 类型的方法(如下表所示) ,都是直接取得和设置日期值中特
    定部分的方法了。 需要注意的是, UTC 日期指的是在没有时区偏差的情况下 (将日期转换为 GMT 时间)
    的日期值。

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


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


    getFullYear()
    取得4位数的年份(如2007而非仅07)


    getUTCFullYear()返回UTC日期的4位数年份

    setFullYear( 年 )  设置日期的年份。传入的年份值必须是4位数字(如2007而非仅07)


    setUTCFullYear( 年 )  设置UTC日期的年份。传入的年份值必须是4位数字(如2007而非仅07)


    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。在某 地进入夏令时的情况下,这个值会有所变化

    -------------------------------------------------------------------------------------------------本章节完---------------------------------------------------------------------------------------------

    这一章节着重总结了 引用类型中Date 类型的属性方法。

    下章节预告:正则表达式,与 function 类型。 

  • 相关阅读:
    Linux 线程间通信方式+进程通信方式 总结
    使用opencv第三方库的makefile文件示例
    rplidar SDK 二次开发---之获取目标信息(0.1)
    #include "Target_orientation.h"
    opencv —— 调用摄像头采集图像 VideoCapture capture(0);
    cmake 支持-lpthread
    ROS下sensor_msgs::ImagePtr到sensor_msgs::Image之间的转换
    JAVA 校验身份证号码工具类(支持15位和18位)
    python面向对象游戏练习:好人坏人手枪手榴弹
    python 私有属性的作用
  • 原文地址:https://www.cnblogs.com/wxhhts/p/9436246.html
Copyright © 2011-2022 走看看