我必须将日期格式转换为mm-dd-yyyy
,但我不知道它是动态的当前日期格式,所以如果我已经在mm-dd-yyyy
中使用了动态日期格式,那么date()
函数将在outout下面返回
$date='02-13-2011';
echo date('m-d-Y',strtotime($date));
输出是
01-01-1970
?>
所以我必须检查日期是否已经在mm-dd-yyyy
中,所以不要应用日期格式。还有其他方法吗?可能正在这些函数中传递另一个参数或类似的东西。
谢谢。
我强烈怀疑这是引起问题的原因:
m / d / y或d-m-y格式的日期通过查看各个组成部分之间的分隔符来消除歧义:如果分隔符是斜杠(/),则假定为美国m / d / y;相反,如果分隔符是破折号(-)或点(。),则采用欧洲d-m-y格式。
(在strtotime documentation中找到。]
您具有破折号分隔符,因此它假定为d-m-y格式,将其解析为13个月,因此实际上失败了。
我可以不用PHP开发人员就能想到的选项:
如果有一个函数可以让您明确说明字符串的格式,请使用该格式。
用-代替m-d-Y会有所帮助。
DateTime::createFromFormat()