我需要更改以下内容
13/07/2012T15:00:00
要
13-7-2012
我尝试使用strtotime
以及date
,但它们无效,我想知道原因。
答案 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');
13-7-2012
确保在new DateTimeZone( "...")
。
答案 1 :(得分:1)
您的输入字符串不是valid date format的strtotime()
。值得注意的是,/
不是dd/m/yyyy
格式的已识别分隔符。
只需将/
转换为-
即可解决问题:
13-07-2012T15:00:00
然后你可以这样做:
echo date('d-n-Y', strtotime('13-07-2012T15:00:00'));
要转换此字符串,您可以执行一些简单的字符串替换。
str_replace('/', '-', $input);
答案 2 :(得分:0)
答案 3 :(得分:0)
因为您需要获得13-7-2012
日期,才能在' - '中替换'/'以获取日期
date('d-n-Y', strtotime(str_replace('/', '-', '13/07/2012T15:00:00'));
答案 4 :(得分:-1)