@@ -39,40 +39,58 @@ object
39
39
40
40
### 写法二:传递参数
41
41
42
- 参数中既可以传递数字,也可以传递字符串 。
42
+ 传递参数时,表示获取指定时间的时间对象。参数中既可以传递字符串,也可以传递数字,也可以传递时间戳 。
43
43
44
- 代码举例:
44
+ 通过传参的这种写法,我们可以把时间字符串/时间数字/时间戳,按照指定的格式,转换为时间对象。
45
45
46
- ``` javascript
47
- var date21 = new Date (' 2020/02/17 21:00:00' );
48
- console .log (date21);
49
- // Mon Feb 17 2020 21:00:00 GMT+0800 (中国标准时间)
46
+ 举例1:(参数是字符串)
47
+
48
+ ``` js
49
+ const date11 = new Date (' 2020/02/17 21:00:00' );
50
+ console .log (date11); // Mon Feb 17 2020 21:00:00 GMT+0800 (中国标准时间)
51
+
52
+ const date12 = new Date (' 2020/04/19' ); // 返回的就是四月
53
+ console .log (date12); // Sun Apr 19 2020 00:00:00 GMT+0800 (中国标准时间)
54
+
55
+ const date13 = new Date (' 2020-05-20' );
56
+ console .log (date13); // Wed May 20 2020 08:00:00 GMT+0800 (中国标准时间)
57
+
58
+ const date14 = new Date (' Wed Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)' );
59
+ console .log (date14); // Fri Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)
60
+ ```
61
+
62
+
63
+ 举例2:(参数是多个数字)
50
64
51
- var date22 = new Date ( 2020 , 2 , 18 ); // 第二个参数返回的是三月,不是二月
52
- console . log (date22);
53
- // Wed Mar 18 2020 00:00:00 GMT+0800 (中国标准时间)
65
+ ``` js
66
+ const date21 = new Date ( 2020 , 2 , 18 ); // 注意,第二个参数返回的是三月,不是二月
67
+ console . log (date21); // Wed Mar 18 2020 00:00:00 GMT+0800 (中国标准时间)
54
68
55
- var date23 = new Date (2020 , 3 , 18 , 22 , 59 , 58 );
56
- console .log (date23);
57
- // Sat Apr 18 2020 22:59:58 GMT+0800 (中国标准时间)
69
+ const date22 = new Date (2020 , 3 , 18 , 22 , 59 , 58 );
70
+ console .log (date22); // Sat Apr 18 2020 22:59:58 GMT+0800 (中国标准时间)
58
71
59
- var date24 = new Date (' 2020/04/19' ); // 返回的就是四月
60
- console .log (date24);
61
- // Sun Apr 19 2020 00:00:00 GMT+0800 (中国标准时间)
72
+ const params = [2020 , 06 , 12 , 16 , 20 , 59 ];
73
+ const date23 = new Date (... params);
74
+ console .log (date23); // Sun Jul 12 2020 16:20:59 GMT+0800 (中国标准时间)
75
+ ```
62
76
63
- var date25 = new Date (' 2020-05-20' );
64
- console .log (date25);
65
- // Wed May 20 2020 08:00:00 GMT+0800 (中国标准时间)
66
77
67
- var date26 = new Date (' Wed Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)' );
68
- console .log (date26);
69
- // Fri Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)
78
+ 举例3:(参数是时间戳)
70
79
80
+ ``` js
81
+ const date31 = new Date (1591950413388 );
82
+ console .log (date31); // Fri Jun 12 2020 16:26:53 GMT+0800 (中国标准时间)
83
+
84
+ // 先把时间对象转换成时间戳,然后把时间戳转换成时间对象
85
+ const timestamp = new Date ().getTime ();
86
+ const date32 = new Date (timestamp);
87
+ console .log (date32); // Fri Jun 12 2020 16:28:21 GMT+0800 (中国标准时间)
71
88
```
72
89
73
90
74
91
75
92
93
+
76
94
## 日期的格式化
77
95
78
96
上一段内容里,我们获取到了 Date ** 对象** ,但这个对象,打印出来的结果并不是特别直观。
@@ -96,7 +114,7 @@ Date对象 有如下方法,可以获取日期和时间的**指定部分**:
96
114
| getHours() | 获取小时:0-23 | |
97
115
| getMinutes() | 获取分钟:0-59 | |
98
116
| getSeconds() | 获取秒:0-59 | |
99
- | etMilliseconds () | 获取毫秒 | 1s = 1000ms |
117
+ | getMilliseconds () | 获取毫秒 | 1s = 1000ms |
100
118
101
119
102
120
@@ -168,12 +186,6 @@ function formatDate() {
168
186
169
187
## 获取时间戳
170
188
171
- Date对象 还有如下方法:
172
-
173
- - ` getTime() ` 获取日期对象的** 时间戳** (单位:毫秒)。这个方法在实战开发中,用得比较多。但还有比它更常用的写法,我们往下看。
174
-
175
- 啥叫时间戳?我们先来解释这个概念。
176
-
177
189
### 时间戳的定义和作用
178
190
179
191
** 时间戳** :指的是从格林威治标准时间的` 1970年1月1日,0时0分0秒 ` 到当前日期所花费的** 毫秒数** (1秒 = 1000毫秒)。
@@ -199,25 +211,38 @@ Date对象 还有如下方法:
199
211
为啥打印结果是` -28800000 ` ,而不是` 0 ` 呢?这是因为,我们的当前代码,是在中文环境下运行的,与英文时间会存在** 8个小时的时差** (中文时间比英文时间早了八个小时)。如果代码是在英文环境下运行,打印结果就是` 0 ` 。
200
212
201
213
214
+ ### getTime():获取时间戳
215
+
216
+ ` getTime() ` 获取日期对象的** 时间戳** (单位:毫秒)。这个方法在实战开发中,用得比较多。但还有比它更常用的写法,我们往下看。
217
+
218
+
202
219
### 获取 Date 对象的时间戳
203
220
204
221
代码演示:
205
222
206
223
``` js
207
- // 方式一:获取 Date 对象的时间戳(最常用的写法)
208
- var date1 = + new Date ();
209
- console .log (date2); // 打印结果举例:1589448165370
224
+ // 方式一:获取 Date 对象的时间戳(最常用的写法)
225
+ const timestamp1 = + new Date ();
226
+ console .log (timestamp1); // 打印结果举例:1589448165370
227
+
228
+ // 方式二:获取 Date 对象的时间戳(较常用的写法)
229
+ const timestamp2 = new Date ().getTime ();
230
+ console .log (timestamp2); // 打印结果举例:1589448165370
210
231
211
- var date2 = new Date ();
232
+ // 方式三:获取 Date 对象的时间戳
233
+ const timestamp3 = new Date ().valueOf ();
234
+ console .log (timestamp3); // 打印结果举例:1589448165370
212
235
213
- // 方式二:获取 Date 对象的时间戳(较常用的写法)
214
- console .log (date2 .getTime ()); // 打印结果举例:1589448165370
236
+ // 方式4:获取 Date 对象的时间戳
237
+ const timestamp4 = new Date () * 1 ;
238
+ console .log (timestamp4); // 打印结果举例:1589448165370
215
239
216
- // 方式三:获取 Date 对象的时间戳
217
- console .log (date2 .valueOf ()); // 打印结果举例:1589448165370
240
+ // 方式5:获取 Date 对象的时间戳
241
+ const timestamp5 = Number (new Date ());
242
+ console .log (timestamp5); // 打印结果举例:1589448165370
218
243
```
219
244
220
- 上面这三种写法都可以获取任意 Date 对象的时间戳,最常见的写法是** 方式一** ,其次是方式二。
245
+ 上面这五种写法都可以获取任意 Date 对象的时间戳,最常见的写法是** 方式一** ,其次是方式二。
221
246
222
247
根据前面所讲的关于「时间戳」的概念,上方代码获取到的时间戳指的是:从 ` 1970年1月1日,0时0分0秒 ` 到现在所花费的总毫秒数。
223
248
@@ -226,11 +251,11 @@ Date对象 还有如下方法:
226
251
如果我们要获取** 当前时间** 的时间戳,除了上面的三种方式之外,还有另一种方式。代码如下:
227
252
228
253
``` js
229
- // 方式四 :获取当前时间的时间戳(很常用的写法)
230
- console .log (Date .now ()); // 打印结果举例:1589448165370
254
+ // 方式六 :获取当前时间的时间戳(很常用的写法)
255
+ console .log (Date .now ()); // 打印结果举例:1589448165370
231
256
```
232
257
233
- 上面这种方式四 ,用得也很多。只不过,` Date.now() ` 是H5标准中新增的特性,如果你的项目需要兼容低版本的IE浏览器,就不要用了。这年头,谁还用IE呢?
258
+ 上面这种方式六 ,用得也很多。只不过,` Date.now() ` 是H5标准中新增的特性,如果你的项目需要兼容低版本的IE浏览器,就不要用了。这年头,谁还用IE呢?
234
259
235
260
236
261
### 利用时间戳检测代码的执行时间
@@ -378,6 +403,39 @@ Date对象 还有如下方法:
378
403
379
404
![ ] ( http://img.smyhvae.com/20180202_1130.gif )
380
405
406
+ ## Moment.js
407
+
408
+ Moment.js是一个轻量级的JavaScript时间库,我们可以利用它很方便地进行时间操作,提升开发效率。
409
+
410
+ 使用举例:
411
+
412
+ ``` html
413
+ <!DOCTYPE html>
414
+ <html lang =" en" >
415
+ <head >
416
+ <meta charset =" UTF-8" />
417
+ <meta name =" viewport" content =" width=device-width, initial-scale=1.0" />
418
+ <title >Document</title >
419
+ </head >
420
+ <body >
421
+ <script src =" https://cdn.bootcdn.net/ajax/libs/moment.js/2.26.0/moment.min.js" ></script >
422
+ <script >
423
+ // 按照指定的格式,格式化当前时间
424
+ console .log (moment ().format (' YYYY-MM-DD HH:mm:ss' )); // 打印结果举例:2020-06-12 16:38:38
425
+ console .log (typeof moment ().format (' YYYY-MM-DD HH:mm:ss' )); // 打印结果:string
426
+
427
+ // 按照指定的格式,格式化指定的时间
428
+ console .log (moment (' 2020/06/12 18:01:59' ).format (' YYYY-MM-DD HH:mm:ss' )); // 打印结果:2020-06-12 18:01:59
429
+
430
+ // 按照指定的格式,获取七天后的时间
431
+ console .log (moment ().add (7 , ' days' ).format (' YYYY-MM-DD hh:mm:ss' )); // 打印结果举例:2020-06-19 04:43:56
432
+ </script >
433
+ </body >
434
+ </html >
435
+
436
+ ```
437
+
438
+
381
439
## 我的公众号
382
440
383
441
想学习** 代码之外的技能** ?不妨关注我的微信公众号:** 千古壹号** (id:` qianguyihao ` )。
0 commit comments