【问题标题】:PHP Strtotime return date in wrong DatePHP Strtotime 返回日期错误的日期
【发布时间】:2018-11-07 10:27:43
【问题描述】:

我正在输入这个日期:

$user_entered_date = '30 November, 2020';

当我使用此命令更改日期格式时

$new_user_entered_date = date( 'Y-m-d', strtotime($user_entered_date) );

那么结果是:

2018-11-30

告诉我这个问题的解决方案是什么或者我错在哪里。

【问题讨论】:

  • 试试不带逗号的“2020 年 11 月 30 日”
  • ^ 对此进行了测试并成功了
  • 好像逗号让这个函数认为你的意思是20:20:00November 30, 2020 按预期工作。

标签: php validation date


【解决方案1】:

你的错误是逗号','你必须不这样:

$user_entered_date = '30 November 2020';

【讨论】:

    【解决方案2】:

    如果您无法控制输入格式,则需要使用 createFromFormat。

    $user_entered_date = DateTime::createFromFormat('d M, Y', '30 November, 2020');
    $new_user_entered_date = date_format($user_entered_date, 'Y-m-d');
    
    echo $new_user_entered_date;
    

    【讨论】:

      【解决方案3】:

      用逗号忽略 2020 年,只取 11 月 30 日 因此形成的日期是 2018 年,请使用不带逗号的答案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-19
        • 1970-01-01
        • 2011-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多