我需要更改以下内容
13/07/2012T15:00:00
到
13-7-2012
我尝试过使用strtotime
,date
但它们没有用,我想知道为什么。
用于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( "...")
。
您输入的字符串不是strtotime()
. 值得注意的/
是,它不是公认的dd/m/yyyy
格式分隔符。
只需将 转换为/
即可-
解决问题:
13-07-2012T15:00:00
然后你可以这样做:
echo date('d-n-Y', strtotime('13-07-2012T15:00:00'));
要转换此字符串,您可以进行一些简单的字符串替换。
str_replace('/', '-', $input);
因为您只需要获取 13-7-2012
日期即可在“-”中执行“/”替换以获取日期
date('d-n-Y', strtotime(str_replace('/', '-', '13/07/2012T15:00:00'));