js Date 类型
1.GMT时间、UTC时间、CST时间
>UTC时间(世界标准时间) 与 GMT时间(格林威治时间
GMT 即格林尼治标准时间,也就是世界时。GMT的正午是指当太阳横穿格林尼治子午线(本初子午线)时的时间。但由于地球自转不均匀不规则,导致GMT不精确,现在已经不再作为世界标准时间使用。
UTC 即协调世界时。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作为世界标准时间使用。
所以,UTC与GMT基本上等同,误差不超过0.9秒,我们可以认为格林威治时间就是世界协调时间(GMT=UTC)。UTC是当今民用时间的基础。它使用一天 24 小时时间制,并结合了地球的自转时间与原子钟的高精度度量。
UTC是一个标准,而不是一个时区。UTC 是一个全球通用的时间标准。全球各地都同意将各自的时间进行同步协调 (coordinated),这也是 UTC 名字的来源:Universal Coordinated Time。
>UTC时间 与 CST时间(北京时间)
UTC + 时区差 = 本地时间
时区差东为正,西为负。在此,把东八区时区差记为 +0800,中国北京处于东8区
UTC + (+0800) = 本地(北京)时间 (1)
那么,UTC = 本地时间(北京时间))- 0800 (2)
2.创建日期对象
> var dateObj = new Date() 不传参数默认获取当前日期和时间;或者传入表示特定日期的毫秒数; 或者传入特定日期和时间的字符串来创建对象(会自动调用Date.parse() 或者 Date.UTC()方法);
注:new Date("2021-01-02") 这种格式在IE8下不支持,只能写 new Date("2021/01/02")不能只传年月
Date.parse()和Date.UTC() 可以将传入的特定日期转化为表示特定日期的毫秒数
Date.parse() 接受一个表示日期的字符串 如:2020-12-02
Date.UTC() 的参数分别是 年份、基于0的月份、月中哪一天、小时数(0~23)、分钟、秒以及毫秒数
3.相关方法
>Date.now() 方法返回当前日期的毫秒数
+操作符可以获取Date对象的时间戳(可以比较两个日期相差天数), 所以可以分析代码的运行如下
var start = +new Date();
//调用函数
var stop= +new Date();
var result= stop - start;
>toLocaleString()、toString()、valueOf()
toLocaleString()方法会按照与浏览器设置的地区相适应的日期格式返回日期和时间(不会包含时区信息)
toString()方法则通常返回带有时区信息的日期和时间
valueOf()方法不返回字符串,而是返回日期的毫秒表示 (所以,可以使用比较操作符><=来比较日期值)
>日期格式化方法
toDateString()/toLocaleDateString() 以特定于实现的格式显示星期几、月、日和年
toTimeString()/toLocaleTimeString() 以特定于实现的格式实现时、分、秒和时区
toUTCString() 以特定于实现的格式完整的UTC日期
>去得或者设置日期值中特定部分的方法
getFullYear()/setFullYear() ......