JS标准库系列(五)—— Date对象

一、Date作为工具函数


Date对象是JS提供的日期和时间的操作接口。
Date对象作为工具函数直接使用,不管有没有参数,都是返回当前时间的字符串

作为工具函数返回

二、new Date()


Date还可以当作构造函数使用,返回一个Date对象的实例,如果不加参数,生成的就是代表当前时间的对象。

var today = new Date();

这个Date实例对应的字符串值,就是当前时间。

作为构造函数使用

同时作为构造函数,里面还可以接受多种形式的参数。

[ 注 ]:北京时间,又名中国标准时间CST),是中国大陆的标准时间,比世界协调时快八小时(即UTC+8),或者是比格林威治时间快八小时(即GMT+8),因为格林威治时间(GMT)和世界协调时间(UTC)处于同个时区。

2.1、new Date(milliseconds)

将你要得到的那个日期转化成毫秒数,时间是从1970年1月1日00:00:00 UTC开始计算的。

// 将1970年1月2日的 零时 转为时间对象
//注意,这里是零时,那东八区就会+8
var Jan02_1970 = new Date( 24* 60 * 60 * 1000);
// Fri Jan 02 1970 08:00:00 GMT+0800(中国标准时间)

// 将1969年12月31日的零时转为时间对象
var Dec31_1969 = new Date(- 24 * 60 * 60 * 1000);
// Wed Dec 31 1969 08:00:00 GMT+0800(中国标准时间)

上面最后一个例子说明,Date构造函数的参数可以是一个负数,表示1970年1月1日之前的时间。

2.2、new Date(datestring)

Date对象还接受一个日期字符串作为参数,返回所对应的时间。

new Date('Jan 2, 2017');
// Mon Jan 02 2017 00:00:00 GMT+0800 (中国标准时间)

对于YYYY-MM-DD形式的字符串,JavaScript引擎可能会将其当作ISO格式来解析,采用格林尼治时区作为计时标准;而对于其他格式的日期字符串,一律视为非ISO格式,采用本地时区作为计时标准。

输入字符串格式影响计时标准
2.3、new Date(year, month [, date, hours, minutes, seconds, ms])

Date对象还可以接受多个整数作为参数,依次表示年、月、日、小时、分钟、秒和毫秒。如果采用这种格式,最少需要提供两个参数(年和月),其他参数都是可选的。

注意:月份从0开始计算,日期date默认为1,其它默认为0。

多个整数作为参数

三、日期的运算


类型转换时,Date对象的实例如果转为数值,则等于对应的毫秒数;
如果转为字符串,则等于对应的日期字符串。

日期的计算

所以,两个日期对象进行减法运算,返回的就是它们间隔的毫秒数;进行加法运算,返回的就是连接后的两个字符串。

四、Date对象的静态方法


4.1、Date.now() [ 当前时间是CST时间,会转成GMT时间计算 ]

Date.now方法返回当前时间的UTC时间距离1970年1月1日 00:00:00 UTC的毫秒数。

返回当前时间距离UTC的毫秒数

这个当前是个什么时间?
假设我电脑现在显示2017年1月2日 11:15:00 CST这是东八区时间,那要先转化为UTC时间 -82017年1月2日 03:15:00 UTC然后计算这个时间距离1970年1月1日 00:00:00 UTC的毫秒数。

验证
4.2、Date.parse() [ 参数是CST或GMT,是CST则转成GMT时间计算 ]

Date.parse方法用来解析日期字符串,返回距离1970年1月1日 00:00:00 UTC的毫秒数。

解析日期字符串

如果解析失败,返回NaN。

参数的区别
4.3、Date.UTC() [ 参数是GMT无需转换 ]

该方法接受年、月、日等变量作为参数,参数就是UTC时间,返回距离1970年1月1日 00:00:00 UTC的毫秒数。

返回UTC时间

现在发现有点懵B,这些个方法,参数,时区,得到的结果让人摸不着头脑,甚是玄乎啊,不知道怎么记忆。

三者的区别比较

五、Date实例对象的方法


Date的实例对象,有几十个自己的方法,分为以下三类。

  • to类:从Date对象返回一个字符串,表示指定的时间。
  • get类:获取Date对象的日期和时间。
  • set类:设置Date对象的日期和时间。
5.1、to类方法

toString:返回当前时区的完整日期字符串;
toUTCString:返回返回对应的UTC时间完整日期字符串;
toDateString:返回日期字符串;
toTimeString:返回时间字符串;
toLocaleTimeString:返回一个字符串,代表时间的当地写法。

常见的to类方法
5.2、get类方法

Date对象提供了一系列get*方法,用来获取实例对象某个方面的值。

getFullYear: 获取实例的四位年份;
getMonth:获取月份(0表1月,11表12月);
getDate:获取几号;
getDay:获取星期(0为星期日,1为星期一);
getHours:返回小时;
getMinutes:返回分钟;
getSeconds:返回秒;
getMilliseconds:返回毫秒;
getTime():返回距离1970年1月1日00:00:00的毫秒数,相当于valueOf();

get*方法
5.3、set类方法

Date对象提供了一系列set*方法,用来设置实例对象的各个方面。

setFullYear:设置实例的四位年份;
setMonth:设置月份;
setDate:设置日子;
setHours:设置小时;
setMinutes:设置分钟;
setSeconds:设置秒;
setMilliseconds:设置毫秒;
setTime:设置毫秒时间戳;

set*方法

(本系列下一节为 — Math对象)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,864评论 6 13
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,211评论 0 4
  • 参考基础教程的整理,方便记忆 一、Object对象 (O大写) 所有其他对象都继承自这个对象。Object本身也是...
    Viaphlyn阅读 2,302评论 0 0
  • 抄自http://javascript.ruanyifeng.com/stdlib/date.html概述Date...
    zjh111阅读 4,868评论 0 2
  • 1 下班后,和同事坐公交车,俩人开始聊天。 同事四十二岁了,声音洪亮,总是在笑,走起路来也很有力量,蛮有精神蛮有活...
    梁朝月阅读 71评论 1 0