mysql时间戳与PHP时间戳,关于时间戳最佳实践:时间戳最佳实践-php,mysql

本问题已经有最佳答案,请猛点这里访问。

我到处找了找,没有找到我问题的具体答案。

我想知道存储时间戳信息的最佳实践。

例子:用户1在美国东部时间下午3:00登录佛罗里达(-0500)管理员一小时后从加利福尼亚州(0800)下午4:00登录系统。

我希望管理员看到屏幕上的日志,并看到用户1在1小时前登录。

我的大脑快疯了,因为我觉得我把这件事弄得太复杂了。

我应该能够使用unix时间戳,然后使用-0800或-0300进行调整。

我是否将用户时区偏移量存储在他们的配置文件信息中?我是否用日志条目存储-0300?

如有任何意见,我们将不胜感激!

您混合了客户机时区和服务器时区。

只要你不关心用户的位置,只要你不改变服务器时区,你就完全没有问题。您可以在mysql和php中设置一个默认时区,这个时区将被使用,独立于访问者的时区。

如果你想尊重访客的时区,它会变得稍微复杂一些。您需要将时间戳从一个时区转换为另一个时区。如果您想用PHP实现这一点,可以在PHP手册中找到相关信息。如果您对MySQL如何在内部存储日期(时间戳和日期时间类型之间的差异)感兴趣,可以阅读此so线程,这将打开使用某些MySQL功能的可能性,并且在实现全局项目时,您一定要考虑到这些功能。

所以您要说的是,我应该将时间戳存储在基于服务器时区的数据库中。然后我将用户的时区存储在offst,当向登录的用户显示所有时间时,我使用他们的offst?

是的,这是一种可能,可能是最好的方式。

另一种选择是将UTC保存在数据库中,但这需要更多的计划和思考。你也可以考虑一下这个解决方案,然后决定哪个更适合你的需要。

在做了一些关于扩展能力的思考之后,我应该把所有的时间都以UTC为基础,因此无论将来在srever配置和位置上发生了什么,时间总是以相同的基准时间为基准。谢谢您!

您也可以阅读:stackoverflow.com/questions/19023978/…

您可以将时间戳存储为INTEGER数据类型。

然后,您可以在客户端使用JS来获取用户的时区。

可以,但不应将时间戳保存为提供专用日期时间列类型的数据库中的整数。

时区可以在PHP中动态配置,因此不需要将时间偏移存储在数据库中。存储UNIX时间戳是一个很好的解决方案。

在提供专用日期时间类型的数据库中存储UNIX时间戳是一个错误的解决方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值