首页 > 解决方案 > PHP 无法找出正确的日期格式

问题描述

我有来自 mysql 的数据类型为 DATETIME 的数据,格式为2020-08-19 10:48:00

但是,我的 HTML 表单上的“datetime-local”类型的输入是dd-mm-yyyy --:--

所以很明显,如果我尝试将输入值设置为获取的日期时间,它就不起作用。我有一个格式化日期的函数,在这里:

function formatDate($date, $format){
  switch($format){
    //Sunday, 11th November 2018
    case 1: return date("l, jS F Y", strtotime($date));
      break;

        //11th November 2018
    case 2: return date("jS F Y", strtotime($date));
      break;

        //November 11th 2018
    case 3: return date("F jS Y", strtotime($date));
      break;

        //11-11-18
    case 4:return date("d-m-y", strtotime($date));
      break;

        //18-11-11
    case 5:return date("y-m-d", strtotime($date));
      break;

        //Sunday, 11th November 2018 @ 11:11
    case 6: return date("l, jS F Y @ H:i", strtotime($date));
      break;

        // 11:11
        case 7: return date("H:i a", strtotime($date));
            break;

        // 11/11/2020 11:11
        case 8: return date("d/m/Y @ H:i", strtotime($date));
            break;

        //20201111 for invoice pdf
      case 9:return date("Ymd", strtotime($date));
        break;

        // 11/11/2020 11:11
        case 10: return date("d/m/Y", strtotime($date));
            break;

        //Sunday, 11/11/2020 11:11
        case 11: return date("l, d/m/Y", strtotime($date));
            break;

        case 12: return (strtotime($date));
            break;

        case 13: return date("Y-m-d\TH:i", strtotime($date));
            break;

        case 14: return date("Y", strtotime($date));
            break;

        case 15: return date('%d-%m-%YT%H:%M', strtotime($date));
            break;
  }
}

但遗憾的是,我已经尝试了所有案例和我刚刚添加的第 15 号案例。谁能告诉我有没有更好的方法或实际正确的格式,所以我可以将它实现到我的函数中

标签: php

解决方案


问题是datetime-local输入类型期望日期采用这种格式:yyyy-mm-ddThh:mm但您提供%d-%m-%YT%H:%M的是 sql 日期格式。尝试使用以下格式:

return date('Y-m-d\TH:i', strtotime($date));

编辑:案例 13 应该可以解决问题


推荐阅读