时间差异

node获取当前时间获取的是utc时间
image.png
数据库自动存入的时间
image.png而本地时间
image.png

你会发现ndoe跟数据库里保存都是utc的时间也就是英国格林威治的时间,而我电脑显示的时间跟node获取的当前时间和数据库存入的时间相差啦8个小时,这是因为utc(世界协调时是以英国格林威治的时间为标椎。utc时间与北京时间相差8个小时,utc的凌晨相当于北京时间的上午8点

但是时间戳是一样的,因为时间戳是某个utc时间到utc1970-1-1凌晨经过的毫秒数,时间戳是表示的utc时间的差异

服务器和数据库必须使用utc时间
客户端需要展示本地时间,且还是根据同地区的客户友好的显示时间

使用moment库解决时间差异问题

民间中文网:http://momentjs.cn/

  1. // 全局语言环境
  2. moment.locale("zh-cn");
  1. //得到当前时间,moment对象
  2. // console.log(moment().toString());
  3. // console.log(moment.utc().toString());
  1. //得到当前时间戳
  2. // console.log(moment().valueOf(), +moment());
  3. // console.log(moment.utc().valueOf(), +moment.utc())