【问题标题】:php convert date to mysql formatphp将日期转换为mysql格式
【发布时间】:2016-05-26 08:26:58
【问题描述】:

我已经通过convert php date to mysql format,但我仍然有一些问题和疑问,

一般情况下,我的应用程序可以输入Y-m-dd-m-ym-d-YjSF Y 格式的日期,甚至可以使用'/' 分隔符。

我希望将此日期转换为MYSQL Y-m-d 格式, 我尝试如下,但它显示的输出与预期不同,

不工作

date_format(date_create_from_format('d-m-Y', '02-25-2016'), 'Y-m-d');

工作

date_format(date_create_from_format('d-m-Y', '25-02-2016'), 'Y-m-d');

所以看起来格式和字符串以相同的方式匹配,否则它不能正确解释,

将以上 4 种格式输入转换为 mysql(Y-m-d) 格式的最佳方法是什么?

非常感谢,

【问题讨论】:

  • 您到底为什么希望date_create_from_format('d-m-Y', '02-25-2016') 工作? 25个月有多少年?当然日期值和格式掩码必须匹配.....这就是date_create_from_format()的重点!!!
  • @MarkBaker,我知道这行不通,这就是为什么我问不管输入日期格式如何让它工作:-)
  • 您是否尝试过使用 $date = new \DateTime($date_str); echo $date->format('Y-m-d');
  • 你能添加你的输出吗?
  • 不可能有一个全唱全跳的日期格式转换器,因为像01-02-2016....这样的日期是2月1日还是1月2日? PHP 将根据/- 分隔符为您做出决定,但不能保证它是正确的.....您需要控制使用的日期格式,以便消除歧义.. .. date_create_from_format() 函数的重点是让您告诉 PHP 日期是什么格式,以便解析器做出正确的决定

标签: php mysql


【解决方案1】:

我建议这些天在 PHP 中使用 Carbon 进行任何日期处理。

通过解析字符串创建日期很简单...
http://carbon.nesbot.com/docs/#api-instantiation

以您需要的格式获取输出也很简单...
http://carbon.nesbot.com/docs/#api-formatting

【讨论】:

    【解决方案2】:

    我建议你使用这个功能:DateTime::createFromFormat

    使用它,您需要通过指定特定格式来创建日期。

    试试这个:

     $date = DateTime::createFromFormat('Y-m-d', '2016-05-26');
     echo $date->format('Y-m-d');
     echo "<hr/>";
    
     $date = DateTime::createFromFormat('d-m-Y', '26-05-2016');
     echo $date->format('Y-m-d');
     echo "<hr/>";
    
     $date = DateTime::createFromFormat('m-d-Y', '05-26-2016');
     echo $date->format('Y-m-d');
     echo "<hr/>";
    
     $date = DateTime::createFromFormat('jS F Y', '26th May 2016');
     echo $date->format('Y-m-d');
    

    【讨论】:

      【解决方案3】:

      感谢所有建议,我想我找到了我的逻辑, 我的日期格式选择存储在sql db中,所以将尝试如下,

      date_format(date_create_from_format('format from db', 'user entered format'), 'Y-m-d');
      

      由于用户输入的格式存储在数据库中,所以我将在这个 date_format 函数中提取它,所以两者都会匹配,我可以转换为 Y-m-d!

      谢谢,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-11
        • 2011-08-13
        • 2014-02-25
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 2013-12-15
        • 1970-01-01
        相关资源
        最近更新 更多