【问题标题】:createFormat PHP input string not matching output objectcreateFormat PHP 输入字符串与输出对象不匹配
【发布时间】:2023-04-09 22:48:01
【问题描述】:

我将以下字符串分配给一个变量:

$date = "16 June, 2012, 13:00pm";

我正在通过 createFromFormat 运行它以尝试将其转换为 DateTime 对象:

$dateTime = DateTime::createFromFormat("d M, Y, H:ia", $date);

这是我找回的对象:

DateTime Object
(
    [date] => 2012-06-17 01:00:00
    [timezone_type] => 3
    [timezone] => Europe/Dublin
)

老实说,我不确定自己做错了什么,createFromFormat 中使用的格式看起来与输入字符串的格式匹配,但输出错误。在此示例中,日期是 17 日而不是 16 日,时间显示为 01:00:00 而不是 13:00:00

任何想法或建议都会有帮助,

【问题讨论】:

    标签: php string datetime


    【解决方案1】:

    DateTime 将 PM 解释为“在结果中增加 +12 小时”,这会使您的约会失去平衡。

    简单的解决方案:删除 PM,或使用 12 小时制版本(即下午 1:00)

    【讨论】:

      【解决方案2】:

      尝试摆脱 pm。 24 小时制的重点是您不需要上午/下午。

      $date = "16 June, 2012, 13:00";
      $dateTime = DateTime::createFromFormat("d M, Y, H:i", $date);
      

      【讨论】:

        猜你喜欢
        • 2012-01-26
        • 2023-01-03
        • 1970-01-01
        • 2020-06-17
        • 1970-01-01
        • 2017-03-19
        • 2021-12-31
        • 1970-01-01
        • 2019-01-11
        相关资源
        最近更新 更多