JavaScript日期也是一种数据类型,它是一种特殊的对象。我们在写程序的时候,也会时不时的用到它。
它有点特殊,它和别的数据类型不太一样。别的数据类型初始化的时候,可以用字面量的形式来给一个变量赋值,但是,日期只能用new的形式。其他的数据类型都可以用new的形式,但是,我不建议大家用new,直接用字面量的形式就好。new的话,它会使代码变的复杂,也会拖慢执行速度,还可能会出现一些让我们意想不到的问题,比如,做比较的时候,字符串会出现不相等的情况,数值会出现值相等类型不相等的情况等等吧。
不管什么数据类型,只要用new的形式初始化,都会成为一个对象。所以说,JS里,所有的东西都可以看成是对象。
对象是类的一个实例化。
类可以理解成具有相同特征的一个群体,比如人类。
对象就是类的一种,比如,我们每个人就是一个对象,也就是一个人类的实例化。
我们获取一个对象的方法就是用关键词new,后面跟上相应的类名。比如,获取一个字符串对象,我们可以用下面这种方式获取。
var str = new String();
后面括号里也可以有参数,比如:
var str = new String('刘小妞');
类名()这种格式叫构造函数。通过new 构造函数,实例化一个对象。
日期的类是Date。所以,获取日期对象格式如下:
var d = new Date();
它的参数有四种格式,如下:
new Date()
new Date(year, month, day, hours, minutes, seconds, milliseconds)
new Date(milliseconds)
new Date(date string)
不管用哪种参数,默认情况下,JS使用浏览器的时区,输出的都是一个字符串,格式如下:
Thu Nov 14 2019 11:10:53 GMT+0800 (中国标准时间)
new Date() 是获取当前日期和时间
。
new Date(year, month, day, hours, minutes, seconds, milliseconds)
获取指定日期和时间,这7个参数是可选的,都是数字。按照字面意思分别代表年、月、日、小时、分钟、秒和毫秒。
注意,年份如果写一位数或者两位数,代表的是19xx年。
月份的参数是从0开始的,也就是说,0代表1月、1代表2月、依次类推,11代表12月。
当上面的参数只有一个的时候,这一个参数不是年,是毫秒。也就是第三种参数格式。
new Date(milliseconds)
它这个毫秒数,是距离1970年1月1日的毫秒数。如果是0,就表示1970年1月1日。后面的时分秒,和当时的时区有关系,会有一些误差。比如:
var d = new Date(60*60*24*1000);
获取的是1970年1月2日。
new Date(date string)
这种参数是日期格式。
日期格式有四种格式:
ISO日期:"YYYY-MM-DD" (国际标准)(首选日期格式)
短日期:"11/14/2019" 或者 "2019/11/14"
长日期