【问题标题】:Reformat datetime variable in PHP [duplicate]在PHP中重新格式化日期时间变量[重复]
【发布时间】:2014-02-06 12:53:25
【问题描述】:

我将以下datetime 2014-02-05 17:12:48 存储在名为$reportDb["reportDate"] 的php 变量中。

现在,它是Y-m-d H:i:s 格式,我想要d/m/Y H:i:s 格式。如何设置或重新格式化此变量?

我尝试使用datetime::createformat,但它不起作用。

【问题讨论】:

    标签: php variables datetime format


    【解决方案1】:
    $formatted = date("d/m/Y H:i:s", strtotime($reportDb["reportDate"]))
    

    如果你想要另一种方法。即使我更喜欢已经提到的那个。

    输出05/02/2014 17:12:48

    【讨论】:

    • 完美!非常感谢。
    【解决方案2】:

    PHP 5.3 及更早版本:

    $dt = new DateTime('2014-02-05 17:12:48');
    echo $dt->format(''d/m/Y H:i:s'');
    

    PHP 5.4+:

    $dt = (new DateTime('2014-02-05 17:12:48'))->format(''d/m/Y H:i:s'');
    

    带变量:

    $dt = (new DateTime($reportDb["reportDate"]))->format(''d/m/Y H:i:s'');
    

    【讨论】:

    • 2014-02-05 17:12:48 存储在变量中,并且始终会更改。
    • 所以把变量放在 DateTime 调用中
    • PHP 解析错误:语法错误,意外的 T_OBJECT_OPERATOR。
    • 您必须运行旧版本的 PHP。试试我提供的更新代码。
    【解决方案3】:

    如果我没听错的话,$reportDb["reportDate"] 已经是一个 DateTime 对象了。

    如果是这样,你所需要的就是......

    $reportDb["reportDate"]->format('d/m/Y H:i:s');
    

    干杯!

    【讨论】:

    • 它不起作用并产生以下错误:'PHP 致命错误:在非对象上调用成员函数 format()'
    • $reportDb["reportDate"] 必须是 DateTime 对象。 PHP 告诉你它不是一个对象。因此,请更新您的问题,因为“datetime 2014-02-05 17:12:48”不是 DateTime,而是一个字符串。在这种情况下,约翰康德的答案是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2019-12-25
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多