【问题标题】:Create date from text string in PHP从 PHP 中的文本字符串创建日期
【发布时间】:2020-05-27 13:49:46
【问题描述】:

我想将文本字符串转换为datetime,然后以不同的格式输出。我想我可以用date_create_from_format() 做到这一点,但这不会返回任何细节。

$datetime=date_create_from_format( 'Y-m-d.H:i:sP'  , '2020-05-26T11:03:00+00:00' );
$newdatestring=date('g:iA', $datetime);

【问题讨论】:

  • 你可能想看看strtotime()

标签: php date time


【解决方案1】:

您可以尝试以下简单代码。请注意,如果要在格式中包含文字字符,则需要使用反斜杠 (\) 对其进行转义。 date_create_from_format() / DateTime::createFromFormat() 调用的结果是一个DateTime 对象,表示时间字符串指定的日期和时间,因此您需要对其进行适当的格式化。

程序:

<?php
$datetime = date_create_from_format('Y-m-d\TH:i:sP', '2020-05-26T11:03:00+03:00');
echo date_format($datetime, 'g:iA');
?>

面向对象:

<?php
$datetime = DateTime::createFromFormat('Y-m-d\TH:i:sP', '2020-05-26T11:03:00+03:00');
echo $datetime->format('g:iA');
?>

输出:

11:03AM

【讨论】:

    【解决方案2】:

    使用 DateTime 类保持简单:

    $datetime = new DateTime('2020-05-26T11:03:00+00:00');
    
    $newdatestring = $datetime->format('g:iA');
    

    如果需要,也可以使用DateTime::createFromFormat

    【讨论】:

    • 您发布的代码 ($datetime = new DateTime('2020-05-26T11:03:00+00:00'); $newdatestring = $dt-&gt;format('g:iA');) 返回错误(Undefined variable: dt ...Uncaught Error: Call to a member function format() on null ...)。
    猜你喜欢
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多