更改PHP5中日期的格式

更改PHP5中日期的格式,php,Php,我想我的问题很琐碎,但我不知道如何解决它 我有一个字符串,其中包含以下格式的日期: $date=('25/8/1990'); 我想将其转换为: 1990-8-25 我试着做到以下几点: $newdate=date('Y-m-d',strtotime($date)); 但我得到的结果是 1969-12-31 而不是 1990-8-25. 谢谢您使用DateTime界面 <?php $date = '25/8/1990'; $newDate = new DateTime(str_

我想我的问题很琐碎,但我不知道如何解决它

我有一个字符串,其中包含以下格式的日期:

$date=('25/8/1990');
我想将其转换为:

1990-8-25
我试着做到以下几点:

$newdate=date('Y-m-d',strtotime($date));
但我得到的结果是

1969-12-31
而不是

1990-8-25.

谢谢您使用DateTime界面

<?php

$date = '25/8/1990';

$newDate = new DateTime(str_replace('/', '-', $date));

echo $newDate->format('Y-n-d');

您还可以使用DateTime作为

$date = '25/8/1990';
$date = DateTime::createFromFormat('d/n/Y', $date);
echo $date->format('Y-n-d');//1990-8-25
如果原始格式一致,请使用:

$date = '25/8/1990';
$date_obj = DateTime::createFromFormat('j/n/Y', $date);
$date = $date_obj->format('Y-n-j');
使用()或()。自动猜测月/日订单位置不是很明智,因此避免使用strotime()



可能重复使用
DateTime::createFromFormat
将日期字符串转换为DateTime对象,然后
DateTime::format
以所需的字符串格式输出。非常感谢,这正是我想要的<代码>日期时间::createFromFormat('d/n/Y',$date)也可以这样做。而不是字符串替换方法。@n在这种情况下,您也必须更改分隔符。@sgt在这种情况下,无需更改分隔符。请检查我的回答。他使用的格式是
d/n/Y
,当月没有前导0。
$date = '25/8/1990';
$date_obj = DateTime::createFromFormat('j/n/Y', $date);
$date = $date_obj->format('Y-n-j');
<?php
$strdate='25/8/1990';

$darray=date_parse_from_format("d/m/Y", $strdate);
$newstr=date("Y-m-d", mktime(0, 0, 0, $darray['month'], $darray['day'], $darray['year']));

echo $newstr; //produces 1990-08-25

?>