【问题标题】:utc date or just a timestamp from right nowUTC 日期或从现在开始的时间戳
【发布时间】:2012-02-01 01:00:40
【问题描述】:

我有以下代码 $time = strtotime(date('Y-m-d 00:00', strtotime(gmdate('Y-m-d H:i')) + 0)); 它正在做一些UTC转换。在末尾添加 0 也有点令人困惑。 date 和 gmdate 也有点令人困惑。 上面的回声是1328083200 是时候了吗?日期戳?我将如何转换回来

【问题讨论】:

  • 你得到的是一个 UNIX 时间戳。我真的不明白你的其他问题是什么。此外,这段代码非常复杂。你想用这个做什么?
  • 它是给我的...试图理解它
  • 好吧,这没有多大意义...... :)

标签: php date


【解决方案1】:

strtotime( $string ) 会将提供的$string(如果采用可识别的格式)转换为 UNIX 时间戳。 UNIX 时间戳是自 UNIX 纪元以来的秒数,即 1970 年 1 月 1 日 (UTC) 的 00:00:00。

您提供的代码似乎正在尝试返回当天 (UTC) 开始时的 UNIX 时间戳,因此返回 gmdate()。末尾的 0 可能是为了确保返回一个整数,即使它是零。

请参阅 PHP 文档了解这些函数:

它很笨拙,但我认为您可以将现有代码缩短为:

$time = strtotime(gmdate('Y-m-d 00:00'));

我只是在某些时候提供这个,并且出于未知的原因(我个人责怪小精灵)像这样的疯狂代码之所以疯狂是有原因的......

【讨论】:

  • 那么它给了我什么?是给我当天的凌晨 12:00 吗?
  • 是的,就像我说的“...返回当天开始的 UNIX 时间戳 (UTC)...”因此,如果由于时差,您的本地日期为 2 1 月,但格林威治的日期是 1 月 1 日,它将返回 1 月 1 日上午 00:00(不是 1 月 2 日上午 00:00,这将是您当地一天的开始)的 Unix 时间戳。
  • 嗯..想知道为什么有人想这样做。这可能会导致很多问题。
【解决方案2】:

它正在回显一个 Unix 时间戳。使用date()进行转换

【讨论】:

    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多