JavaScript 对象

时间和时间戳

在 JavaScript 中,Date对象用来表示日期和时间。

要获取系统当前时间,用:

1
2
3
4
5
6
7
8
9
10
11
let now = new Date();
now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
now.getFullYear(); // 2015, 年份
now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月
now.getDate(); // 24, 表示24号
now.getDay(); // 3, 表示星期三
now.getHours(); // 19, 24小时制
now.getMinutes(); // 49, 分钟
now.getSeconds(); // 22, 秒
now.getMilliseconds(); // 875, 毫秒数
now.getTime(); // 1435146562875, 以number形式表示的时间戳

注意,当前时间是浏览器从本机操作系统获取的时间,所以不一定准确,因为用户可以把当前时间设定为任何值。

如果要创建一个指定日期和时间的 Date 对象,可以用:

1
2
let d = new Date(2015, 5, 19, 20, 15, 30, 123);
console.log(d); // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)

JavaScript的月份范围用整数表示是 0~11,0 表示一月,1 表示二月……,所以要表示 6 月,我们传入的是 5

第二种创建一个指定日期和时间的方法是通过时间戳创建:

1
2
3
let timestamp = Date.parse('2015-06-24T19:49:22.875+08:00'); // 1435146562875
// 转成 Date 对象
let d = new Date(timestamp);

这里我们了解一下时间戳。时间戳是一个自增的整数,它表示从1970年1月1日零时整的 GMT 时区开始的那一刻,到现在的毫秒数。假设浏览器所在电脑的时间是准确的,那么世界上无论哪个时区的电脑,它们此刻产生的时间戳数字都是一样的,所以,时间戳可以精确地表示一个时刻,并且与时区无关

要获取当前时间戳,可以用:

1
2
3
let timestamp1 = Date.parse('2015-06-24T19:49:22.875+08:00'); // 1435146562875
let timestamp2 = Date.now();
let timestamp3 = new Date().getTime();

我们要输出时间,可以这样做:

1
2
3
let d = new Date();
console.log(d.toLocaleString()); // '2026/6/20 18:18:59',本地时间(北京时区+8:00),显示的字符串与操作系统设定的格式有关
console.log(d.toUTCString()); // 'Sat, 20 Jun 2026 10:18:59 GMT',UTC时间,与本地时间相差8小时

总结

  • typeof 能识别基本类型和函数,但 null 和数组会误判为 object
  • 永远不要 new Number/String/Boolean 创建包装对象。
  • 类型转换用 parseInt/FloatString()、隐式布尔判断。
  • 数字调方法记得加括号 (123).toString()

参考

简介 - JavaScript 教程 - 廖雪峰的官方网站