美文网首页
js引用类型3:Date类型

js引用类型3:Date类型

作者: 大小伍 | 来源:发表于2017-12-18 10:03 被阅读0次

    3.Date类型

    3.1创建一个Date对象

    let now = new Date();
    

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

    let date1 = new Date("May 25, 2004");//英文格式
    let date2 = new Date(2005, 4, 5, 17, 55, 55); //年月日时分秒顺序传入(月份加一,注意一下此处)
    

    后台自动调用Date.parse()和Date.UTC()方法

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

    let start = Date.now();
    //调用函数
    doSomething();
    //取得停止时间
    let stop = Date.now(),
    result = stop – start;
    

    支持Data.now()方法的浏览器包括IE9+、Firefox 3+、Safari 3+、Opera 10.5 和Chrome。在不支持它的浏览器中,使用+操作符把Data 对象转换成字符串,也可以达到同样的目的。

    3.2继承方法

    关于toLocaleString()和toString()不想再做太多赘述,这两个方法在不同的浏览器中返回的日期和时间格式可谓大相径庭。事实上,toLocaleString()和toString()的这一差别仅在调试代码时比较有用,而在显示日期和时间时没有什么价值。
    至于Date 类型的valueOf()方法,则根本不返回字符串,而是返回日期的毫秒表示。因此,可以方便使用比较操作符(小于或大于)来比较日期值。

    let date1 = new Date(2007, 0, 1); //"January 1, 2007"
    let date2 = new Date(2007, 1, 1); //"February 1, 2007"
    alert(date1 < date2); //true
    alert(date1 > date2); //false
    

    从逻辑上讲,2007 年1 月1 日要早于2007 年2 月1 日,此时如果我们说前者小于后者比较符合常理。而表示2007 年1 月1 日的毫秒值小于表示2007 年2 月1 日的毫秒值,因此在首先使用小于操作符比较日期时,返回的结果是true。这样,就为我们比较日期提供了极大方便。

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

    • toDateString()——以特定于实现的格式显示星期几、月、日和年;
    • toTimeString()——以特定于实现的格式显示时、分、秒和时区;
    • toLocaleDateString()——以特定于地区的格式显示星期几、月、日和年;
    • toLocaleTimeString()——以特定于实现的格式显示时、分、秒;
    • toUTCString()——以特定于实现的格式完整的UTC 日期。

    与toLocaleString()和toString()方法一样,以上这些字符串格式方法的输出也是因浏览器而异的,因此没有哪一个方法能够用来在用户界面中显示一致的日期信息。

    除了前面介绍的方法之外,还有一个名叫toGMTString()的方法,这是一个与
    toUTCString()等价的方法,其存在目的在于确保向后兼容。不过,ECMAScript 推荐现在编写的代码一律使用toUTCString()方法。

    3.4日期/时间组件方法

    到目前为止,剩下还未介绍的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。在某地进入夏令时的情况下,这个值会有所变化

    相关文章

      网友评论

          本文标题:js引用类型3:Date类型

          本文链接:https://www.haomeiwen.com/subject/povdwxtx.html