【问题标题】:php timezone messing with javascript timephp时区与javascript时间混淆
【发布时间】:2014-08-05 09:12:53
【问题描述】:

我正在使用TimeAgo 插件自动更新帖子的时间。它让时间像05-08-2014 15:02:39 到5 minutes ago。

问题是,javascript 使用客户端的时钟作为时间。我来自亚洲的孟加拉国。但在 php 中,默认时区因服务器而异。我在 PHP 中输​​出格式 05-08-2014 15:02:39 以使用 TimeAgo 插件将其转换为 5 mintues ago 之类的格式。

由于服务器的时区不同,最近的帖子中没有显示less than a minute ago,而是显示nn hours ago。如果服务器是美国的,它显示11 hours ago,如果它是印度的,时间显示30 minutes ago。我该如何解决?

【问题讨论】:

  • 通过 PHP 将服务器上的当前时间输出到页面,并将发布日期与该日期进行比较,而不是客户端时间。
  • @RoryMcCrossan 我不明白。那将如何解决 timeago 插件使用客户端时间的问题?
  • 如 TimeAgo 项目页面所述:您是否关心时区支持?不要这样。 Timeago 也处理这个问题。只要您的时间戳采用 ISO 8601 格式并包含完整的时区指示符 (±hhmm),那么无论您的访问者居住在哪个时区,一切都应该开箱即用。
  • @Wulf 我认为我的时间戳不在“ISO 8601”中。我什至不知道那是什么。你能解释一下吗?
  • 在下面查看我的答案。例如,ISO 8601 是“2014-08-05T11:29:30+0200”。最后一部分 (+0200) 是与 UTC 的小时差,TimeAgo 将据此计算正确的时区差。

标签: javascript php jquery datetime timeago


【解决方案1】:

如 TimeAgo 项目页面所述:

您是否担心时区支持?不要这样。时光手柄 这个也是。只要您的时间戳采用 ISO 8601 格式并且 包括一个完整的时区指示符(±hhmm),一切都应该工作 无论您的访问者居住在哪个时区,开箱即用。

所以用date('c',$timestamp) 回显日期服务器端,一切都应该正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 2012-05-15
    • 2012-10-15
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    相关资源
    最近更新 更多