时间(1)
入门。
机器内部通常把时间日期转换成一个整数,叫做 Unix Time,表示从 1970 年一月一号开始经过了多少秒。
在 Terminal 中可以查看当前的 Unix Time
$ date +%s
1519769705
放弃?
当用 JavaScript 来转换日期时,你却看到了这样分裂的结果:
> Date.parse('2020-01-01');
1577836800000
> Date.parse('2020/01/01');
1577865600000
进阶!
在 bash 里把得到的 Unix Time 再转换回去看看,注意 JavaScript 给我们的是毫秒,所以要去掉最后三个 0
$ date -d @1577836800
Tue Dec 31 16:00:00 PST 2019
$ date -d @1577865600
Wed Jan 1 00:00:00 PST 2020
所以第一个是 PST 的 2019 年 12 月 31 号下午四点,也就是 UTC 的 2020 年 1 月 1 号零点;而第二个是 PST 的零点。2020-01-01
返回的是 UTC 的时间,而2020/01/01
返回的是本地时间。
这谁记得住呢。
如果要强制 UTC 时间,就要在字符串中加上Z
> Date.parse('2020-01-01Z');
1577836800000
> Date.parse('2020/01/01Z');
1577836800000