【问题标题】:How to convert correct date from m-d-Y to Y-m-d using PHP [duplicate]如何使用 PHP 将正确的日期从 m-d-Y 转换为 Y-m-d [重复]
【发布时间】:2020-03-11 10:39:41
【问题描述】:

由于我阅读了其他一些类似问题的主题,我不明白我的情况有什么问题 日期按 - 在这两种情况下排序,因此日期 03-14-2020 应变为 2020-14-03 但变为 1970-01-01

$dates = explode(" / ", $this->input->post('date'));
print_r($dates);

Array ( [0] => 03-14-2020 [1] => 03-20-2020 )


    $newDate = array(
       'start'      => date("Y-m-d", strtotime($dates[0])),
       'end'        => date("Y-m-d", strtotime($dates[1]))
    );
print_r($newDate)

Array ( [start] => 1970-01-01 [end] => 1970-01-01 ) 

即使这种方式显示不正确

$date = DateTime::createFromFormat('d-m-Y', $dates[0]);
print_r($date->format('Y-m-d'));
2021-02-03

【问题讨论】:

  • 日期格式不正确...应为 YYYY-MM-DD。
  • @LarsStegelitz 请举一个正确的例子
  • 我做了...请务必阅读文档!在您的createFromFormat 中,您再次使用了不正确的格式...

标签: php


【解决方案1】:

我使用 DateTime::createFromFormat 完成了

    $start = DateTime::createFromFormat('m-d-Y', $dates[0]);
    $end = DateTime::createFromFormat('m-d-Y', $dates[1]);
    $newDate = array(
        'start'     => $start->format('Y-m-d'),
        'end'       => $end->format('Y-m-d')
    );

    print_r($newDate) ;
    Array ( [start] => 2020-03-14 [end] => 2020-03-20 ) 

【讨论】:

  • $output = DateTime::createFromFormat('m-d-Y', '05-03-2021')->format('Y-m-d');
【解决方案2】:
$dates = array ('03-14-2020', '03-20-2020' );
  print_r($dates);
      $newDate = array(
         'start'      => date("Y-m-d", time($dates[0])),
         'end'        => date("Y-m-d", time($dates[1]))
      );
  print_r($newDate)

试试这个

【讨论】:

  • 结果错误:Array ( [0] => 03-14-2020 [1] => 03-20-2020 ) Array ( [start] => 2020-03-11 [end] => 2020-03-11 )
  • 发现:您需要将这些格式用于旧日期 - DD-MM-YYYY - YYYY-MM-DD
猜你喜欢
  • 2023-03-08
  • 2012-07-21
  • 1970-01-01
  • 2011-10-24
  • 2021-05-16
  • 2021-03-09
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
相关资源
最近更新 更多