0

我需要更改以下内容

13/07/2012T15:00:00

13-7-2012

我尝试过使用strtotimedate但它们没有用,我想知道为什么。

4

5 回答 5

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');

将打印

13-7-2012

确保在调用中设置正确的时区new DateTimeZone( "...")

于 2012-07-17T12:50:48.650 回答
1

您输入的字符串不是strtotime(). 值得注意的/是,它不是公认的dd/m/yyyy格式分隔符。

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

13-07-2012T15:00:00

然后你可以这样做:

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

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

str_replace('/', '-', $input);
于 2012-07-17T12:43:35.753 回答
0

检查这个:

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

工作中的代码

于 2012-07-17T12:46:49.853 回答
0

因为您只需要获取 13-7-2012日期即可在“-”中执行“/”替换以获取日期

date('d-n-Y', strtotime(str_replace('/', '-', '13/07/2012T15:00:00'));
于 2012-07-17T12:51:31.023 回答
-1

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

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

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

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

于 2012-07-17T12:56:21.780 回答