【问题标题】:How does php time() function worksphp time() 函数是如何工作的
【发布时间】:2014-04-20 14:25:23
【问题描述】:

PHP time()在以下情况下如何工作:

用户正在数据库中发布一些内容,并且添加了发布戳记,这只是 time()

但是如何补偿时区呢?如果欧盟和美国的两个用户同时发帖,发帖戳是一样的吗?

【问题讨论】:

  • time()关心时区。它所做的只是返回一个 Unix 时间戳(这是自 Unix 纪元以来的秒数)。有关更多详细信息,请参阅此问题:What is a Unix timestamp and why use it?
  • Thx Amal,那么在这种情况下有什么好的做法呢?我应该只保留来自 time() 函数的邮戳,还是应该补偿不同的时区(根据用户所在国家/地区时区添加或减去邮戳小时数)?
  • 我不确定我是否理解您的问题。你到底想完成什么?
  • 我很困惑,因为如果我有来自美国的用户在纽约时间下午 23 点发布一些东西,那么在 db 中输入的张贴邮票将是 UTC 当前时间,当时是凌晨 4 点(如果我没记错的话)。后来,当我尝试显示记录发布的日期时,在网站上,我会得到 8 月 20 日而不是 19 日(8 月 19 日下午 23 点实际上是创建记录的日期)
  • 按原样存储 time() 的结果。显示时间时,调整显示时间。其他任何事情都会以眼泪告终。

标签: php


【解决方案1】:

重点在于time()-方法将所有内容存储在服务器配置的同一时区中。

如果不这样做,就不可能知道什么时候真的发生了。

如果您想显示带有时区的日期时间,您可以从服务器输出时间戳,使用 javascript 或其他东西来计算客户端时区偏移量并添加/减去时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多