【问题标题】:Working with unix timestamps and timezones使用 unix 时间戳和时区
【发布时间】:2013-03-25 21:36:42
【问题描述】:

时区和时间戳让我很困惑,所以我希望有人能回答我的问题 :)

假设我有一个 Python 脚本,它解析 RSS 提要,使用以下代码将日期值转换为时间戳并将其存储在数据库中:

article_date = parse(article.published).strftime('%s') if hasattr(article, 'published') else round(time.time())

现在,当我在 PHP 中从数据库中检索该记录并运行以下代码时,PHP 是否假定时间戳为 UTC-0 并自动将时区偏移到东部时间?

date_default_timezone_set('America/New_York');
echo date('Y-m-d H:i:s',$timestamp);

我发现我的日期出现了奇怪的问题,所以我想知道是否有人可以帮助我就如何正确转换和存储 rss 提要时间戳提供建议。我可以在某处跨越这行代码,所以我应该把它放在我的脚本的顶部吗?

os.environ['TZ'] = 'Europe/London'

【问题讨论】:

  • PHP 还是 python?您似乎两者兼而有之,您使用的是哪种语言? :)
  • Python 将时间戳存储在数据库中,php 读取并处理它们

标签: php python date timestamp-with-timezone


【解决方案1】:

如果你想设置你的时区并让它们在 PHP 和 Python 中保持一致,那么你的 PHP 代码是完全正确的,对于 python,你需要应用以下内容:

os.environ['TZ'] = 'America/New_York'
time.tzset()

之前你打电话给strftime()

这应该确保您将时间存储在您尝试检索它的同一区域中。

注意:tzset() 是一个仅限 Unix 的函数。

【讨论】:

    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多