【问题标题】:Display Y-m-d format for wrong date format input in php在 php 中显示错误日期格式输入的 Y-m-d 格式
【发布时间】:2019-10-31 09:52:35
【问题描述】:

我有一张日期为 Y/m/d H:i:s 格式的 Excel 表格。但是如果用户不小心输入了 2019/29/10 16:20:10(即 Y/d/m H:i:s)格式,它应该转换为 Y-m-d H:i:s 格式为 2019-10-29 16:20:10。

我使用了以下 strotime,但它将 Y/d/m 格式转换为 1970-01-01

$date = date('Y-m-d h:i:s', strtotime($rows[$i][2]));

如果错误的月份和日期交换了,我们可以保存并以 Y-m-d 格式显示吗??

【问题讨论】:

  • 如果他们进入 2019/02/04 - 你怎么知道它的格式是否错误?
  • 如果用户输入错误,您需要拒绝它。你猜不出用户打错了什么字。
  • 我宁愿给用户一个错误信息,说他们需要以正确的格式写日期。
  • 如果你使用 laravel,你应该使用 carbon 而不是 strtotime()

标签: php laravel date strtotime


【解决方案1】:

如果您没有任何日期,则默认日期为 1970-01-01,因此请在 if 之前使用条件

if($rows[$i][2]){
 date('Y-m-d h:i:s', strtotime($rows[$i][2]));
}

另一种方法是在 Laravel Blade 模板中使用 Carbon

{{ \Carbon\Carbon::parse($rows[$i][2])->format('Y-m-d h:i:s')}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2018-05-25
    • 1970-01-01
    • 2010-12-23
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多