【JavaScript学习】Date类型

来源:互联网 发布:淘宝网页怎么发链接 编辑:程序博客网 时间:2024/06/06 16:37

创建一个日期对象:

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:55var 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:55var 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;
原创粉丝点击