【问题标题】:Date time formats in PHPPHP中的日期时间格式
【发布时间】:2016-05-02 10:09:48
【问题描述】:

我正在使用 GoTo Webinar API,它需要在数组的开始时间和结束时间元素中显示如下所示的日期格式:

$params = [
    'subject' => 'Test 34',
    'description' => 'Test test test lalala',
    'times' => [[
        'startTime' => '2016-02-22T23:00:00Z',
        'endTime' => '2016-02-23T00:00:00Z'
    ]],
    'timeZone' => 'GMT'
];

有人可以向我解释一下 T/Z 的相关性在时间部分的任何一方都意味着什么吗?这是否只是意味着应用下面也传入的 GMT 的 TimeZone 元素?

如果是这样,我可以/如何使用 PHP date() 函数将这个:“2016-01-16 07:00:00”格式化为上述格式吗?

【问题讨论】:

  • T 是日期和时间部分之间的分隔符; Z 是一个时区(祖鲁时间,又名 GMT、UST 或 UTC) - 请参阅 ISO 8601
  • 酷,有道理。所以.. 在 PHP 中,我可以使用特定的日期/时间格式将这些添加到我的字符串中吗?或者我是否需要通过将日期与“T”连接起来,然后是时间,最后是“Z”来捏造一些东西。如果它们丢失,GoTo 网络研讨会 API 会返回错误...
  • 如果您使用c 格式代码格式化日期,PHP 可以将这些添加到您的日期

标签: php date time date-format time-format


【解决方案1】:

使用的数据标准。

它们遵循 ISO 8601 标准。您可以在例如找到有关此标准的更多详细信息。 the Wikipedia article on ISO 8601.


关于T的含义:

单个时间点可以通过连接一个完整的时间点来表示 日期表达式、作为分隔符的字母 T 和有效时间 表达。例如,“2007-04-05T14:30”。

关于Z的含义:

如果时间为 UTC,则在时间后直接添加 Z,不带 空间。 Z 是零 UTC 偏移的区域指示符。 “世界标准时间 09:30” 因此表示为“09:30Z”或“0930Z”。 “14:45:15 UTC”将 为“14:45:15Z”或“144515Z”。

如何在 PHP 中根据 ISO 8601 标准格式化日期:

$datetime = new DateTime('2016-01-25 23:46:46');
$datetime->format(DateTime::ISO8601);

【讨论】:

  • 辛苦了!谢谢:)
【解决方案2】:

值 Z 本身仅表示标准 UTC 时间(即祖鲁时间)。它是根据 ISO 8601 使用的。所以你可以使用 date(DateTime::ISO8601) 之类的东西,它应该会产生你想要的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-02
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2013-10-05
    • 2017-06-29
    相关资源
    最近更新 更多