在PHP5中更改日期的格式

时间:2015-05-20 06:56:10

标签: php

我认为我的问题很简单,但我无法弄清楚如何解决它。

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

stopPropagation

我想将其转换为:

$date=('25/8/1990');

我尝试执行以下操作:

1990-8-25

但我得到的结果是

$newdate=date('Y-m-d',strtotime($date));

而不是

1969-12-31

谢谢

4 个答案:

答案 0 :(得分:1)

使用DateTime界面。 -

<?php

$date = '25/8/1990';

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

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

<强>输出

1990-8-25

答案 1 :(得分:1)

您也可以使用日期时间作为

$date = '25/8/1990';
$date = DateTime::createFromFormat('d/n/Y', $date);
echo $date->format('Y-n-d');//1990-8-25

答案 2 :(得分:0)

如果原始格式一致,请使用DateTime::createFromFormat

$date = '25/8/1990';
$date_obj = DateTime::createFromFormat('j/n/Y', $date);
$date = $date_obj->format('Y-n-j');

答案 3 :(得分:0)

使用date_parse_from_format()或strptime()。自动猜测月/日订单放置不是很理智,所以请避免使用strtotime()。

<?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

?>