美文网首页
Date类型

Date类型

作者: Wonder233 | 来源:发表于2017-11-17 11:39 被阅读0次

    创建一个日期对象:

    var now = new Date();
    

    调用Date构造函数而不传递参数,则新创建的对象自动获得当前日期和时间。
    如果想根据特定的日期和时间创建日期对象,则需传入表示该日期的毫秒数(即从UTC时间1970年1月1日午夜起至该日期止经过的毫秒数)。
    ECMAScript为简化此过程提供了两种方法:

    Date.parse():

    param:表示日期的字符串参数
    return:根据字符串返回相应日期的毫秒数;若传入的字符串不能表示日期,则返回NaN
    字符串格式:

    • “月/日/年”,new Date(Date.parse("6/13/2014"));
    • “英文月名 日,年”,new Date(Date.parse("January 12,2004"));
    • “英文星期几 英文名月名 日 年 时:分:秒 时区”,new Date(Date.parse("Tue May 25 2004 00:00:00 GMT-0700"));
    • ISO 8601扩展模式 YYYY-MM-DDTHH:mm:ss.sssZ,new Date(Date.parse("2004-05-25T00:00:00"));(只有兼容ECMAScript 5的实现支持此格式)
    var someDate = new Date(Date.parse("May 25,2004"));
    //若直接传字符串,则会在后台调用Date.parse()
    var someDate = new Date("May 25,2004");
    

    Date.UTC():

    param:表示日期的字符串参数
    return:根据字符串返回相应日期的毫秒数
    字符串格式:年份、基于0的月份(0-11)、月中的哪一天(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));
    

    这里很奇怪,红皮书上说的是默认设为0,但是我在Chrome上输出下面代码中y2k变量,得到的结果是Sat Jan 01 2000 08:00:00 GMT+0800,并不是午夜0时。

    Date构造函数也会模仿Date.UTC(),但是日期和时间是基于本地而非GMT来创建。

    本地时间输出,默认确实全设为0了。

    //等价简写
    //本地时间2000年1月1日午夜零时 
    var y2k = new Date(2000,0);
    //本地时间2005年5月5日下午5:55:55
    var allFives = new Date(2005,4,5,17,55,55);
    

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

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

    相关文章

      网友评论

          本文标题:Date类型

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