zoukankan      html  css  js  c++  java
  • Date对象

    原文地址:https://wangdoc.com/javascript/

    普通函数的用法

    Date对象可以作为普通函数直接调用,返回一个代表当前时间的字符串,即使带有参数Date作为普通函数使用时,返回的还是当前时间。

    Date() // "Wed Dec 05 2018 17:12:15 GMT+0800 (中国标准时间)"
    Date(2000, 1, 1) // "Wed Dec 05 2018 17:13:00 GMT+0800 (中国标准时间)"
    

    构造函数的用法

    Date还可以当作构造函数使用。对它使用new命令,会返回一个Date对象的实例,如果不加参数,实例代表的就是当前时间。Date实例有一个独特的地方,就是它在求值的时候调用的是toString方法。这导致对Date实例求值,返回的是一个字符串。
    作为构造函数时,Date对象可以接受多种格式的参数,返回一个该参数对应的时间实例。

    // 参数为时间零点开始计算的毫秒数
    new Date(1378218728000);
    
    // 参数为日期字符串
    new Date("January 6, 2018");
    
    // 参数为多个整数
    // 代表年、月、日、小时、分钟、秒、毫秒
    new Date(2018, 0, 1, 0, 0, 0, 0);
    

    关于Date构造函数的参数,有几点说明。
    第一点,参数可以是负整数,代表1970年元旦之前的时间。
    第二点,只要是能被Date.parse方法解析的字符串,都可以当做参数。
    第三点,参数为年月日等多个整数时,年和月不能省略,其他的参数都可以省略。
    * 年:使用四位数年份,比如2000。如果写成两位数或个位数,则加上1900。如果是负数,表示公元前。
    * 月:0表示一月,依此类推。
    * 日:131
    * 小时:023/font>。
    * 分钟:059
    * 秒:059
    * 毫秒:0999
    这些参数如果超出了正常范围,会被自动折算。比如,如果月设置为15,就折算为下一年的4月。参数还可以使用负数,表示扣去的时间。

    日期的运算

    两个日期实例对象进行减法运算时,返回的是他们间隔的毫秒数;进行加法运算时,返回的是两个字符串连接而成的新字符串。(参考对象的加减)

    静态方法

    Date.now()

    Date.now方法返回当前时间距离时间零点(1970年1月1日00:00:00 UTC)的毫秒数,相当于Unix时间戳乘以1000。

    Date.parse()

    Date.parse方法用来解析日期字符串,返回该时间距离时间零点的毫秒数。日期字符串应该复合RFC 2822和ISO 8061这两个标准,即YYYY-MM-DDTHH:mm:ss.sssZ格式,其中最后的z表示时区。但是其他格式也可以被解析。
    如果解析失败,返回NaN

    Date.UTC()

    Date.UTC方法接受年、月、日等变量作为参数,返回该时间距离时间零点的毫秒数。
    该方法的参数与Date构造函数完全一致。区别在于Date.UTC方法的参数,会被解释为UTC时间(世界标准时间),Date构造函数的参数会被解释为当前时区的时间。

    实例方法

    Date的实例对象有几十个自己的方法,除了valueOftoString,可以分为以下三类。

    • to类:从Date对象返回一个字符串,表示指定的时间。
    • get类:获取Date对象的日期和时间。
    • set类:设置Date对象的日期和时间。

    Date.prototype.valueOf()

    valueOf方法返回实例对象距离时间零点的毫秒数,该方法等同于getTime方法。

    to类方法

    Date.prototype.toString()

    toString返回一个完整的日期字符串。

    Date.prototype.toUTCString()

    toUTCString方法返回对应的UTC时间,也就是比北京时间晚8个小时。

    var d = new Date(2018, 0, 1);
    d.toUTCString(); // "Sun, 31 Dec 2017 16:00:00 GMT"
    

    Date.prototype.toISOString()

    toISOString方法返回对应时间的ISO8601写法,注意,toISOString方法返回的总是UTC时区的时间

    Date.prototype.toJSON()

    toJSON方法返回一个符合JSON格式的ISO日期字符串,与toISOString方法的返回值完全相同。

    Date.prototype.toDateString(),Date.prototype.toTimeString()

    toDateString方法返回日期字符串(不包含时分秒)。
    toTimeString方法返回时间字符串(不包含年月日)。

    本地时间

    以下三个方法,可以将Date实例转为表示本地时间的字符串。

    • Date.prototype.toLocaleString():完整的本地时间。
    • Date.prototype.toLocaleDateString():本地日期。
    • Date.prototype.toLocaleTimeString():本地时间。
    这三个方法都有两个可选参数。
    

    dateObj.toLocaleString([locales[, options]])
    dateObj.toLocaleDateString([locales[, options]])
    dateObj.toLocaleTimeString([locales[, options]])

    这两个参数中,<font color=red>locales</font>是一个指定所用语言的字符串,<font color=red>options</font>是一个配置对象。下面是<font color=red>locales</font>的例子。
    

    var d = new Date(2013, 0, 1);

    d.toLocaleString("en-US"); // "1/1/2013, 12:00:00 AM"
    d.toLocaleString("zh-CN"); // "2013/1/1 上午12:00:00"

    下面是<font color=red>options</font>的例子。
    

    var d = new Date(2013, 0, 1);
    // 时间格式
    // 下面的设置是,星期和月份为完整文字,年份和日期为数字
    d.toLocaleDateString("en-US", {
    weekday: "long",
    year: "numeric",
    month: "long",
    day: "numeric"
    }); // "Tuesday, January 1, 2013"
    // 指定时区
    d.toLocaleTimeString("en-US", {
    timeZone: "UTC",
    timeZoneName: "short"
    }); // "4:00:00 PM UTC"

    d.toLocaleTimeString("en-US", {
    timeZone: "Asia/shanghai",
    timeZoneName: "long"
    });

    d.toLocaleTimeString("en-US", {
    hour12: false
    });
    d.toLocaleTimeString("en-US", {
    hour12: true
    });

    ### get类方法
    <font color=red>Date</font>对象提供了一系列<font color=red>get*</font>方法,用来获取实例对象某个方面的值。
    * <font color=red>getTime()</font>:返回实例距离1970年1月1日00:00:00的毫秒数,等同于<font color=red>valueOf</font>方法。
    * <font color=red>getDate()</font>:返回实例对象对应每个月的几号(从1开始)。
    * <font color=red>getDay()</font>:返回星期几,星期日为0,星期一为1,依此类推。
    * <font color=red>getFullYear()</font>:返回四位的年份。
    * <font color=red>getMonth()</font>:返回月份(0表示1月,11表示12月)。
    * <font color=red>getHours()</font>:返回小时(0-23)。
    * <font color=red>getMilliseconds()</font>:返回毫秒(0-999)。
    * <font color=red>getMinutes()</font>:返回分钟(0-59)。
    * <font color=red>getSeconds()</font>:返回秒(0-59)。
    * <font color=red>getTimezoneOffset()</font>:返回当前时间与UTC的时区差异,以分钟表示,返回结果考虑到了夏令时因素。
    所有这些<font color=red>get*</font>方法返回的都是整数,不同方法返回值的范围不一样。
    上面这些<font color=red>get*</font>方法返回的都是当前时区的时间,<font color=red>Date</font>对象还提供了这些方法对应的UTC版本,来返回UTC时间。
    * <font color=red>getUTCDate()</font>
    * <font color=red>getUTCFullYear()</font>
    * <font color=red>getUTCMonth()</font>
    * <font color=red>getUTCDay</font>
    * <font color=red>getUTCHours()</font>
    * <font color=red>getUTCMinutes()</font>
    * <font color=red>getUTCSeconds()</font>
    * <font color=red>getUTCMilliseconds()</font>
    

    var d = new Date("January 6, 2013");
    d.getDate() // 6
    d.getUTCDate() // 5

    ### set类方法
    <font color=red>Date</font>对象提供了一系列<font color=red>set*</font>方法,用来设置实例对象的哥哥方面。
    * <font color=red>setDate(date)</font>:设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳。
    * <font color=red>setFullYear(year [, month, date])</font>:设置四位年份。
    * <font color=red>setHours(hour [, min, sec, ms])</font>:设置小时(0-23)。
    * <font color=red>setMilliseconds(ms)</font>:设置毫秒(0-999)。
    * <font color=red>setMinutes(minutes, [, sec, ms])</font>:设置分钟(0-59)。
    * <font color=red>setMonth(month [, date])</font>:设置秒(0-59)。
    * <font color=red>setSeconds(sec [, ms])</font>:设置秒(0-59)。
    * <font color=red>setTime(milliseconds)</font>:设置毫秒时间戳。
    没有<font color=red>setDay</font>方法,因为星期几是计算出来的,而不是设置的。
    <font color=red>set*</font>系列方法除了<font color=red>setTime()</font>,都有对应的UTC版本,即设置UTC时区的时间。
    * <font color=red>setUTCDate()</font>
    * <font color=red>setUTCFullYear()</font>
    * <font color=red>setUTCHours()</font>
    * <font color=red>setUTCMilliseconds()</font>
    * <font color=red>setUTCMinutes()</font>
    * <font color=red>setUTCMonth()</font>
    * <font color=red>setUTCSeconds()</font>
  • 相关阅读:
    帝国cms7.0 内容页控制简介字数!
    帝国cms后台 不同栏目发布字段不同
    帝国cms7.0 列表模板调用本栏目缩略图
    戏说三国战纪
    灵动标签调用指定专题
    帝国cms7.0调用出栏目下的东西
    任天堂的游戏之路
    DC游戏《斑鸠》原创赏析[转载]
    一,PHP 语法
    给自己的网站加入“保存到桌面”的按钮
  • 原文地址:https://www.cnblogs.com/chris-jichen/p/10075300.html
Copyright © 2011-2022 走看看