【发布时间】:2016-05-26 08:26:58
【问题描述】:
我已经通过convert php date to mysql format,但我仍然有一些问题和疑问,
一般情况下,我的应用程序可以输入Y-m-d、d-m-y、m-d-Y、jS、F 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 日期是什么格式,以便解析器做出正确的决定