前阵子改一个小东西,要记录用户操作的时间。我一开始图省事,数据库里直接扔了个 datetime 就完事了,也没想时区的事。结果后来发现,同一笔记录,手机上显示和电脑上显示差了八个小时。
会好的排查的过程挺抓狂的,明明代码里写的就是 now(),怎么时间就自己跑偏了。后来才反应过来,我存的根本不是"时间",只是"某个时区里的时间"。服务器在另一个时区,前端又在另一个时区,两边各按各的理解,就对不上了。
现在学乖了,时间一律存 UTC,显示的时候再按用户所在时区转。说这些不是想卖弄,就是觉得这种坑好像谁都会踩一次,希望看到的朋友能省下那一两个小时的抓狂。你们有没有类似的,被一个看似简单的东西整到怀疑人生的经历?~