php将日期转换为mysql格式

时间:2016-05-26 08:26:58

标签: php mysql

我已经完成了convert php date to mysql format,但我仍然没有什么问题和解答,

通常,我的应用可以输入Y-m-dd-m-ym-d-YjSF Y格式的日期,甚至可以输入{{1 }} 分隔器。

我希望将此日期转换为'/'格式, 我尝试如下,但它显示的输出不同于预期,

不工作

MYSQL Y-m-d

工作

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

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

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

谢谢高级,

3 个答案:

答案 0 :(得分:0)

我建议最近使用Carbon来处理PHP中的任何日期处理。

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

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

答案 1 :(得分:0)

我建议您使用此功能: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');

答案 2 :(得分:0)

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

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

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

谢谢,