我已经四处寻找并且没有找到我问题的具体答案..
我想知道存储时间戳信息的最佳做法。
实施例: user1在美国东部时间下午3:00登录佛罗里达州(-0500) 管理员一小时后从加利福尼亚(-0800)下午4:00登录系统
我希望管理员在屏幕上看到日志并看到用户1在1小时前登录..
我的大脑变得疯狂了,我觉得我已经过度复杂了......
我应该可以使用UNIX时间戳,然后使用-0800或-0300进行调整。
我是否将用户时区偏移存储在他们的个人资料信息中? 我是否将-0300与日志条目一起存储。
非常感谢任何输入!
答案 0 :(得分:1)
您正在混淆客户端时区和服务器时区。
只要您不关心用户所在的位置,只要您不更改服务器时区,就绝对没有问题。您可以在MySQL和PHP中设置默认时区,并且将使用此时区,与访问者的时区无关。
如果您想尊重访问者的时区,则会稍微复杂一些。您需要将时间戳从一个时区转换为另一个时区。如果您想通过PHP实现此目的,可以在PHP manual中找到有关该信息的信息。如果您对MySQL如何在内部存储日期(TIMESTAMP和DATETIME类型之间的差异)感兴趣,可以阅读this SO thread,这样就可以使用某些mysql的功能,并且在实现时应该考虑到这一点。全球项目。
答案 1 :(得分:0)
可以在PHP中动态配置时区,因此您无需在数据库中存储时间偏移。存储unix时间戳是一个很好的解决方案。
答案 2 :(得分:0)
您可以将时间戳存储为INTEGER
数据类型。
然后,您可以在客户端使用JS来获取用户的时区。