Date类型

创建一个日期对象:

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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容