我已经完成了convert php date to mysql format,但我仍然没有什么问题和解答,
通常,我的应用可以输入Y-m-d
,d-m-y
,m-d-Y
,jS
,F 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)格式的最佳方法是什么?
谢谢高级,
答案 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!
谢谢,