将日期和时间改为日期

时间:2012-07-17 12:40:32

标签: php date time

我需要更改以下内容

13/07/2012T15:00:00

13-7-2012

我尝试使用strtotime以及date,但它们无效,我想知道原因。

5 个答案:

答案 0 :(得分:4)

使用DateTime为您正确解析此问题。这样,您就不必对原始输入进行任何操作,只需将其输入DateTime::createFromFormat(),就像这样:

$date = DateTime::createFromFormat( '!d/m/Y+', "13/07/2012T15:00:00", new DateTimeZone( "America/New_York"));
echo $date->format( 'd-n-Y');

will print

13-7-2012

确保在new DateTimeZone( "...")

的通话中设置correct timezone

答案 1 :(得分:1)

您的输入字符串不是valid date formatstrtotime()。值得注意的是,/不是dd/m/yyyy格式的已识别分隔符。

只需将/转换为-即可解决问题:

13-07-2012T15:00:00

然后你可以这样做:

echo date('d-n-Y', strtotime('13-07-2012T15:00:00'));

要转换此字符串,您可以执行一些简单的字符串替换。

str_replace('/', '-', $input);

答案 2 :(得分:0)

检查一下:

date("d-n-Y", strtotime(str_replace('/', '-', "13/07/2012T15:00:00")) )

Code at Work

答案 3 :(得分:0)

因为您需要获得13-7-2012日期,才能在' - '中替换'/'以获取日期

date('d-n-Y', strtotime(str_replace('/', '-', '13/07/2012T15:00:00'));

答案 4 :(得分:-1)

你可以像这样轻松地做到这一点

$today = date("m.d.y");

有关详细信息,请使用这些参考

http://php.net/manual/en/function.date.php