关于rails的时间

emmmmm今天运营在输入一篇新闻的时候告诉我说,她添加文章的日期在前端显示的时候总是会多出一天。
我当时的内心是


image.png

但是脸上还是一脸淡定啊。 跟他说没事弄一下就好了,马上开始分析问题。

看了一些相关的材料发现它默认采用的是UTC时间存储的

比如说我在东八区我此时的时间是 2018-09-27 18:00但是存到db中的数据是2018-09-27 10:00,重点来了,但是我在取出时间的时候还是会显示 2018-09-27 18:00

这里说一下怎么改为本地时区
在application.rb 文件中

config.time_zone = 'Beijing'
config.active_record.default_timezone = :local

emmmmm,这是怎么回事那么按理说应该不会有错才对啊,之后我试了一下我把publish时间改为10点这样就没有错误了。

这是我想到了会不会是前端处理的时候又把时间再次加了8h。
moment.js的问题

moment(joinTime).format('YYYY-MM-DD HH:mm:ss')

这样显示的本地时间 他会默认把传进去的时间作为UTC时间,也就是说这样显示的时间原则来说是 北京时间再加上8个小时(后端传过去的时候已经是东八区的时间了)

那么处理起来也很简单只要把它作为UTC时间就可以了

moment(joinTime).utc()format('YYYY-MM-DD HH:mm:ss')

你可能感兴趣的:(关于rails的时间)