strtotime() & date() 将日期转换为与之前相同的格式时的奇怪行为
我必须将日期格式转换为 mm-dd-yyyy
我不知道当前的日期格式是什么,它是动态的,所以如果我有动态日期格式已经是 mm-dd -yyyy
然后 date()
函数返回低于输出
$date='02-13-2011';
echo date('m-d-Y',strtotime($date));
输出是
01-01-1970
?>
所以我必须检查日期是否已经在 中mm-dd-yyyy
则不应用日期格式。 还有其他方法吗?可能会在这些函数中传递另一个参数或类似的参数。
谢谢。
I have to convert date format in to mm-dd-yyyy
I don't know what is the current date format it is dynamic so if I have dynamic date format is already in mm-dd-yyyy
then date()
function is returning below outout
$date='02-13-2011';
echo date('m-d-Y',strtotime($date));
output is
01-01-1970
?>
So I have to check if the date is already in mm-dd-yyyy
then do not apply date formatting.
Is there any other way do this? may be passing one other parameter in these functions or something similar.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我强烈怀疑这就是导致问题的原因:
(可以在strtotime文档中找到。)
你有破折号分隔符,所以它采用 dmy 格式,将其解析为 13 月份,因此实际上失败了。
即使不是 PHP 开发人员,我也能立即想到的选项:
如果有一个函数允许您明确说明字符串的格式,请使用它。
例如
DateTime::createFromFormat()
I strongly suspect that this is what's causing the problem:
(Found in the strtotime documentation.)
You've got dash separators, so it's assuming d-m-y format, parsing it as a month of 13, and thus effectively failing.
Options I can think of off the top of my head, without being a PHP developer:
If there's a function which allows you to explicitly say what format the string is in, use that.
For example
DateTime::createFromFormat()
将 - 替换为 mdY 的 / 会有帮助。
Replacing - with / for m-d-Y will help.