如何使用PHP将日期转换为特定格式?

如何使用PHP将日期转换为特定格式?,php,datetime,Php,Datetime,我有一个输入框,用于获取mm-dd-yyyy格式的值。因此,当我获取日期时,我尝试将其转换为yyy-mm-dd格式。但它不起作用。 例如: 。 输出为1970-01-01 但是如果我给了13-08-2000我得到了2000-08-13我不想拆分。因为在我的应用程序中,我在很多这样的地方都使用过。但是我认为strotime会将它转换成unix时间戳格式,即使它的值是多少。这就是我为什么要这样做的原因。我理解或做了什么错误?谢谢前进。试试这个: $date = explode("-", "08-13


我有一个输入框,用于获取mm-dd-yyyy格式的值。因此,当我获取日期时,我尝试将其转换为yyy-mm-dd格式。但它不起作用。
例如:
。 输出为
1970-01-01

但是如果我给了
13-08-2000
我得到了
2000-08-13
我不想拆分
。因为在我的应用程序中,我在很多这样的地方都使用过。但是我认为
strotime
会将它转换成unix时间戳格式,即使它的值是多少。这就是我为什么要这样做的原因。我理解或做了什么错误?
谢谢前进。

试试这个:

$date = explode("-", "08-13-2000"); // input MM-DD-YYYY
$time = mktime(0, 0, 0, $date[0], $date[1], $date[2]); // to time
$date = date('Y-m-d', $time); // transform to Y-m-d
echo $date; // output YYYY-MM-DD
  • $date[0]是月份
  • $date[1]是日期
  • $date[2]是年份
如果您在许多地方使用它,请创建一个函数():

将破折号分隔的日期解析为dd-mm-yyyy。您需要将出生日期输入为“08/13/2000”。如果您不能更改输入的预期分隔符,str_replace应该完成这项工作

从php.net将分隔符差异归功于frontiermedia.net.au上的sam

编辑:如果需要进行替换,请提供一些示例代码:

$birthdate = '08-13-2000';
$birthdate = str_replace('-','/',$birthdate);
$date      = date('Y-m-d',strtotime($birthdate)); 

echo $date;
否则的话,那就太糟糕了

$birthdate = '08/13/2000';
... snip ...

转换“任何值”都是不可能的-如果你有11-08-2000,那是11月8日还是8月11日?看看你不想爆炸吗(“-”,“08-13-2000”)+1(尽管输入错误!),因为这比相信strotime的变幻莫测要可靠得多。@lonesomeday我同意,尽管发现strotime的一些更有趣的东西很有趣。。。有趣的模棱两可。
$birthdate = '08/13/2000';
... snip ...