我正在使用jquery datepicker,当选择今天的日期时,它无法转换为数据库查询所需的格式。
日期选择日期格式为' m-d-Y',今天显示为09-16-2013。 此部分正常工作,并且日期选择器正确显示今天的日期作为默认选择。
但是,我需要使用' Y-m-d'格式来查询数据库。当日期小于今天时,此工作正常。但是对于今天来说,它失败了,我得到了1969-12-31。
echo $enddt;
显示:2013年9月16日
我试过了:
echo date('Y-m-d', strtodate($enddt));
echo date('Y-m-d H:i:s', strtodate($enddt));
并且都不起作用。 如何格式化$ enddt以显示2013-09-16?
答案 0 :(得分:3)
该功能实际上是strtotime()
,而不是strtodate()
:
通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。
由于日期字符串用短划线分隔,我们需要先将其转换为斜线,以使strtotime()
将格式识别为mm/dd/yyyy
:
$enddt = '09-16-2013';
$enddt = str_replace('-', '/', $enddt);
echo date('Y-m-d', strtotime($enddt));
答案 1 :(得分:2)
$enddt = DateTime::createFromFormat('m-d-Y', '09-16-2013');
echo $enddt->format('Y-m-d');