原来你是这样的new Date()...

  • 内容
  • 相关

timg.jpg

js中的new Date()可传入日期的字符串参数,也可单独传入年份、月份(从0起记)等数值参数,为什么Date()方法可接收不同的参数格式呢?下面我们来解开这个疑惑!

var now=new Date();
返回的日期对象形如“Wed Feb 22 2017 12:11:13 GMT+0800 (中国标准时间)”  这样的日期格式。

如果想根据指定的日期和时间创建日期对象,必须传入表示该日期的毫秒数(从UTC时间1970年1月1日午夜起至该 日期止经过的毫秒数)。为简化这一计算过程,ECMAScript提供了两个方法:Date.parse()和Date.UTC().


1、当new Date()传入的参数是日期字符串(如:2017-2-22 12:11:50)时,Date构造函数会在后台调用Date.parse(),即:
new Date("2017-2-22 12:11:50") 和 new Date(Date.parse("2017-2-22 12:11:50")) 是等价的!

2、当new Date()传入的参数是年份、月份等数值参数(如:2017,2,22,12,11,50)时, Date构造函数会在后台调用Date.UTC(),即:
new Date(2017,2,22,12,11,50) 和 new Date(Date.UTC(2017,2,22,12,11,50)) 是等价的!

3、不管是new Date(Date.parse("2017-2-22 00:21:50")) 还是new Date(Date.UTC(2017,2,22,12,11,50))  都是基于本地时区来创建的,但是Date.parse()方法通常是按当地时区来创建的,而Date.UTC()方法是根据GMT(格林尼治)时间来创建的,验证:
Date.UTC(2017,2,22,12,11,50)-Date.parse("2017-2-22 12:11:50")  差值刚好是差8个钟!

4、new Date()之后能做什么?
举例,上代码:
判断给定日期是星期几,再按当地日期显示格式 组合输出成“ 2月 22 日  星期x ”的格式输出时间
var now= new Date(2017,2.22);

now.getDay() // 3 ,即星期三
5、如何判断两个日期是否相等:
var date1 = new Date("2017-2-22");
var date2 = new Date("2017-2-22");
console.log(date1 == date2); //false
这里返回的却是false是因为date1、date2都是对象,类型为引用类型,所以如果需要比较他们,需要去比较他们的字面量值,而不是单纯的用 == 来比较。
如果想比较两个date是否相等,可以这么写:
var date1 = new Date("2017-2-22");
var date2 = new Date("2017-2-22");
console.log(date1.getTime() == date2.getTime()); //true
用getTime()方法,就可以返回日期对应的数值,然后比较就可以了。
还有一种方法也可以比较日期:
var date1 = new Date("2017-2-22");
var date2 = new Date("2017-2-22");
console.log(date1 - date2 == 0); //true
这里用date1减去date2,即可以得到它们之间的时间差,如果为0,那么肯定是相等的。
原来你是这样的new Date()...
         本页正文内容约1423个文字
         本文标签:

         版权声明:若无特殊注明,本文皆为“懒人的小窝”原创,转载请保留文章出处。

         本文链接:https://suppore.cn/477.html   百度未收录

发表评论

电子邮件地址不会被公开, 推荐使用QQ快速评论!

评论

5条评论
  1. avatar

    企业管理培训 Lv.3 Firefox 51.0 Firefox 51.0 Windows 7 x64 Edition Windows 7 x64 Edition 回复

    厉害了

    广东省深圳市 电信

    1. 小陈 Lv.6 Chrome 56.0.2924.87 Chrome 56.0.2924.87 Windows Windows 回复

      回复了企业管理培训:你这昵称是一天几换啊

            湖南省邵阳市 电信

    2. 企业管理培训 Lv.3 Firefox 51.0 Firefox 51.0 Windows 7 x64 Edition Windows 7 x64 Edition 回复

      回复了小陈:是啊,为了骗点击

            广东省深圳市 电信

    3. 小陈 Lv.6 Chrome 56.0.2924.87 Chrome 56.0.2924.87 Windows Windows 回复

      回复了企业管理培训:这招可以的。

            湖南省邵阳市 电信

    4. 企业管理培训 Lv.3 Firefox 51.0 Firefox 51.0 Windows 7 x64 Edition Windows 7 x64 Edition 回复

      回复了小陈:杠杠滴

            广东省深圳市 电信

00:00 / 00:00
顺序播放