首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
前端学习(0)~vscode工具使用
2
前端学习(1)~html标签讲解(一)
3
前端学习(2)~html标签讲解(二)
4
前端学习(3)~html5详解(一)
5
前端学习(4)~html5详解(二)
6
前端学习(6)~html回顾
7
前端学习(7)~css学习(一):字体属性和文本属性
8
前端学习(8)~css学习(二):背景属性
9
前端学习(9)~css学习(三):样式表和选择器
10
前端学习(10)~css学习:选择器:伪类
11
前端学习(11)~css学习(五):样式表的继承性和层叠性
12
前端学习(12)~css学习(六):盒模型详解
13
前端学习(13)~css学习(七):浮动
14
前端学习(14)~css学习(八):定位属性
15
前端学习(15)~css3学习(九):选择器详解
16
前端学习(16)~css3属性学习(十)
17
前端学习(18)~css3属性学习(十一):动画详解
18
前端学习(19)~css3属性(十二):Flex布局图片详解
19
前端学习(20)~css布局(十三)
20
前端学习(21)~css学习:如何让一个元素水平垂直居中?
21
前端学习(22)~css问题讲解
22
前端学习(23)~js学习(一)
23
前端学习(24)~js学习(二):变量
24
前端学习(25)~js学习(三):变量的数据类型
25
前端学习(26)~js学习(四):基本数据类型vs引用数据类型
26
前端学习(27)~js学习(五): typeof和数据类型转换
27
前端学习(28)~js学习(六):运算符
28
前端学习(30)~js学习(七):流程控制语句-选择结构(if,switch)
29
前端学习(31)~js学习(八):流程控制语句:循环结构(for和while)
30
前端学习(32)~js学习(九):对象简介和对象的基本操作
31
前端学习(33)~js学习(十):函数
32
前端学习(34)~js学习(十一):作用域和变量提升
33
前端学习(35)~js学习(十二):预编译
34
前端学习(36)~js学习(十三):this
35
前端学习(37)~js学习(十四):对象的创建
36
前端学习(38)~js学习(十五):原型对象
37
前端学习(39)~js学习(十六):数组
38
前端学习(40)~js学习(十七):数组的常见方法&数组的遍历
39
前端学习(42)~js学习(十九):内置对象-Date
40
前端学习(43)~js学习(二十):内置对象 - String
41
前端学习(44)~js学习(二十一):包装类
42
前端学习(45)~正则表达式
43
前端学习(46)~事件简介
44
前端学习(47)~DOM简介和DOM操作
45
前端学习(48)~通过style对象获取和设置行内样式
46
前端学习(49)~offset相关属性和匀速动画(含轮播图实现)
47
前端学习(50)~事件的绑定和事件对象
48
前端学习(51)~事件的传播和事件冒泡
49
前端学习(52)~事件委托
50
前端学习(53)~键盘事件

前端学习(42)~js学习(十九):内置对象-Date

内置对象:Date

内置对象 Date 用来处理日期和时间。

需要注意的是:与 Math 对象不同,Date 对象是一个构造函数 ,需要先实例化后才能使用。

创建Date对象

创建Date对象有两种写法

  • 写法一:如果Date()不写参数,就返回当前时间对象
  • 写法二:如果Date()里面写参数,就返回括号里输入的时间对象

写法一:不传递参数时,则获取系统的当前时间对象

代码举例:

代码语言:javascript
复制
var date1 = new Date();
console.log(date1);
console.log(typeof date1);

代码解释:不传递参数时,表示的是获取系统的当前时间对象。也可以理解成是:获取当前代码执行的时间。

打印结果:

代码语言:javascript
复制
Mon Feb 17 2020 21:57:22 GMT+0800 (中国标准时间)
object

写法二:传递参数

参数中既可以传递数字,也可以传递字符串。

代码举例:

代码语言:javascript
复制
var date21 = new Date('2020/02/17 21:00:00');
console.log(date21);
// Mon Feb 17 2020 21:00:00 GMT+0800 (中国标准时间)

var date22 = new Date(2020, 2, 18); // 第二个参数返回的是三月,不是二月
console.log(date22);
// Wed Mar 18 2020 00:00:00 GMT+0800 (中国标准时间)

var date23 = new Date(2020, 3, 18, 22, 59, 58);
console.log(date23);
// Sat Apr 18 2020 22:59:58 GMT+0800 (中国标准时间)

var date24 = new Date('2020/04/19'); // 返回的就是四月
console.log(date24);
// Sun Apr 19 2020 00:00:00 GMT+0800 (中国标准时间)

var date25 = new Date('2020-05-20');
console.log(date25);
// Wed May 20 2020 08:00:00 GMT+0800 (中国标准时间)

var date26 = new Date('Wed Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)');
console.log(date26);
// Fri Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)

日期的格式化

Date对象的方法

Date对象 有如下方法,可以获取日期和时间的指定部分:

  • getFullYear() 获取年份
  • getMonth() 获取月 0-11(0代表一月)
  • getDate() 获取日 1-31。即:获取的是几号
  • getDay() 获取星期 0-6(0代表周日,1代表周一)
  • getHours() 获取小时 0-23
  • getMinutes() 获取分钟 0-59
  • getSeconds() 获取秒 0-59
  • getMilliseconds() 获取毫秒 (1s = 1000ms)

代码举例:

代码语言:javascript
复制
    // 我在执行这行代码时,当前时间为 2019年2月4日,周一,13:23:52
    var myDate = new Date();

    console.log(myDate); // 打印结果:Mon Feb 04 2019 13:23:52 GMT+0800 (中国标准时间)

    console.log(myDate.getFullYear()); // 打印结果:2019
    console.log(myDate.getMonth() + 1); // 打印结果:2
    console.log(myDate.getDate()); // 打印结果:4

    console.log(myDate.getDay()); // 打印结果:1

    console.log(myDate.getHours()); // 打印结果:13
    console.log(myDate.getMinutes()); // 打印结果:23
    console.log(myDate.getSeconds()); // 打印结果:52
    console.log(myDate.getMilliseconds()); // 打印结果:393

    console.log(myDate.getTime()); // 获取时间戳。打印结果:1549257832393

获取了日期和时间的指定部分之后,我们把它们用字符串拼接起来,就可以按照自己想要的格式,来展示日期。

举例1:年月日的格式化

代码举例:

代码语言:javascript
复制
    // 格式化年月日:2020年2月2日 星期三
    var date = new Date();
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var dates = date.getDate();
    var day = date.getDay();
    var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];

    console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);

举例2:时分秒的格式化

封装一个函数,返回当前时间的时分秒,格式为 06:06:06)

getTime():获取时间戳

Date对象 还有如下方法:

  • getTime() 获取当前日期对象的时间戳。这个方法在实际开发中,用得比较多。

时间戳:指的是从格林威治标准时间的1970年1月1日,0时0分0秒到当前日期所花费的毫秒数(1秒 = 1000毫秒)。

计算机底层在保存时间时,使用的都是时间戳。时间戳的存在,就是为了统一时间的单位。

我们再来看下面这样的代码:

代码语言:javascript
复制
    var myDate = new Date("1970/01/01 0:0:0");

    console.log(myDate.getTime()); // 获取时间戳

打印结果(可能会让你感到惊讶)

代码语言:javascript
复制
    -28800000

为啥打印结果是-28800000,而不是0呢?这是因为,我们的当前代码,是在中文环境下运行的,与英文时间会存在8个小时的时差(中文时间比英文时间早了八个小时)。如果代码是在英文环境下运行,打印结果就是0

利用时间戳检测代码的执行时间:

我们可以在业务代码的前面定义 时间戳1,在业务代码的后面定义 时间戳2。把这两个时间戳相减,就能得出业务代码的执行时间。

format()

将时间对象转换为指定格式。

下一篇
举报
领券