网页知识大全 有各种问题可直接咨询博主
您所在的位置:首页 > 浏览器脚本 > Javascript > 正文

javascriptdate(日期)对象

作者:网页知识大全clewo.net 来源:网络 日期:2018/12/26 8:17:48 加入收藏 评论:1 标签:javascriptdate

Date类型介绍

要创建一个日期对象,使用new操作符和Date构造函数即可:

var now = new Date();

Date.parse()方法

其中Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数。ECMA-262没有定义Date.parse()应该支持哪种日期格式,因此这个方法的行为因实现而异,而且通常是因地区而异。将地区设置为美国的浏览器通常都接受下列日期格式:

"月/日/年",如12/26/2018;

"英文月名 日,年",如May 12,2018;

"英文星期几 英文月名 日 年 时:分:秒 时区",如Tue May 25 2018 00:00:00 GMT+0800。

ISO 8601扩展格式YYYY-MM-DDTHH:mm:ss:sssZ(例如 2018-05-25T00::00:00)。只有兼容ECMAScript5的实现支持这种格式。

例如,要为2018年5月25日创建一个日期对象,可以使用下面的代码:

//Tue May 25 2018 00:00:00 GMT+0800 (中国标准时间)

var someDate = new Date(Date.parse('May 25,2018'));

如果传入Data.parse()的方法的字符串不能表示日期格式,会返回NAN。实际上,如果直接将表示日期的字符串传递给Date构造函数,也会在后台调用Date.parse()方法,例如下面的代码跟前面的是等价的。

//Tue May 25 2004 00:00:00 GMT+0800 (中国标准时间)

var someDate = new Date('May 25,2004'); 

这行代码将会得到与前面一行相同的日期对象。

Date.UTC()方法

Date.UTC()同样返回日期的毫秒数。但它与Date.parse()在构建值时使用的是不同的信息。Date.UTC()的参数分别表示年份、基于0的月数(一月是0,二月是1,依次类推)、月中的哪一天(1到31)、小时数(0到23)、分钟、秒、毫秒数。在这些参数中只有前两个参数是必须的(年和月)。如果没有提供月中的天数,则假设天数为1;如果省略其它参数,则统统假设为0,如下例子:

//GMT时间2000年1月1日午夜零时

var y2k = new Date(Date.UTC(2000,0));

console.log(y2k); //Sat Jan 01 2000 08:00:00 GMT+0800 (中国标准时间)

//GMT时间2018年5月5日下午5:55:55

var allFives = new Date(Date.UTC(2018,4,5,17,55,55));

console.log(allFives);//Fri May 06 2018 01:55:55 GMT+0800 (中国标准时间)

说明下:Greenwich Mean Time (GMT)格林尼治标准时间英国、爱尔兰、冰岛和葡萄牙属于该时区。这个时区与中国北京时间的时差是8个小时,也就是说比北京时间晚8个小时。

Date构造函数

Date构造函数会模仿Date.UTC(),但有一点不同的是,日期和时间都是基于本地时区而非GMT来创建。不过他们的参数跟Date.UTC()的参数一样。

例如:

//本地时间2018年1月1日午夜零时

var y2k = new Date(2018,0);

console.log(y2k); //Sat Jan 01 2018 00:00:00 GMT+0800 (中国标准时间)

//本地时间2018年5月5日下午5:55:55

var allFives = new Date(2018,4,5,17,55,55);

console.log(allFives);//Thu May 05 2018 17:55:55 GMT+0800 (中国标准时间)

给Date构造函数传递参数常使用如下几种方式:(注:参数可以为整数; 也可以为字符串; 但格式必须正确)

new Date(2018,1,1); //正确

new Date("2018/1/1"); //正确

new Date("2018-1-1"); //不兼容,在谷歌下能解析,在IE浏览器9及以上结果为[date] Invalid Date,IE8及以下结果为NAN。

说明:日期对象new Date()的参数形式如下:

1)new Date("month dd,yyyy hh:mm:ss");

2)new Date("month dd,yyyy");

3)new Date(yyyy,mth,dd,hh,mm,ss);

4)new Date(yyyy,mth,dd); 

5)new Date(ms);

需要注意最后一种形式,参数表示的是需要创建的时间和 GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下:

month:用英文 表示月份名称,从January到December

mth:用整数表示月份,从0(1月)到11(12月)

dd:表示一个 月中的第几天,从1到31

yyyy:四位数表示的年份

hh:小时数,从0(午夜)到23(晚11点)

mm: 分钟数,从0到59的整数

ss:秒数,从0到59的整数

ms:毫秒数,为大于等于0的整数

例如:

new Date("January 12,2018 22:19:35"); 

new Date("January 12,2018"); 

new Date(2018,0,12,22,19,35); 

new Date(2018,0,12); 

new Date(1137075575000); 

上面的各种创建形式都表示2018年1月12日这一天。

Date.now()方法

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

//取得开始时间

var start = Date.now();

//调用函数

dosomething();

//取得结束时间

var stop = Date.now(),

    result = stop - start;

console.log(start,stop,result); //1494292306763 1494292306768 5

function dosomething(){

    console.log('打印结果');

}

支持Date.now()方法的浏览器包括IE9+,FireFox3+,Safari3+,Opera10.5+和Chrome。在不支持的其它浏览器,使用+操作符把Date对象转成字符串,也可以达到相同的目的。

//取得开始时间

var start = +new Date();

//调用函数

dosomething();

//取得结束时间

var stop = +new Date(),

    result = stop - start;

console.log(start,stop,result); //1494292306763 1494292306768 5

function dosomething(){

    console.log('打印结果');

}

那么就出来这么一个例子,JavaScript 获取当前毫秒时间戳有以下几种方法:

console.log(Date.parse(new Date()));    //结果:1494301186000//不推荐; 毫秒改成了000显示

console.log((new Date()).valueOf());    //结果:1494301186175       

console.log(new Date().getTime());      //结果:1494301186175    

console.log(Date.now());                //结果:1494301186175

console.log(+new Date());               //结果:1494301186175

以上的javascriptdate(日期)对象由网页知识大全为大家整理

本文网址:http://clewo.net/java/157.html
读完这篇文章后,您心情如何?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0