如何在PHP中更改2011-08-17T15:00:00至2011-08-17 15:00:00?

问题描述:

我有这样的事情,从XML源popluated我的日期字符串:如何在PHP中更改2011-08-17T15:00:00至2011-08-17 15:00:00?

2011-08-17T15:00:00

并希望删除字母T这样的结果将是:

2011-08-17 15:00:00

如何找到字母T并用1个空格替换它?

您可以使用str_replace

$date = str_replace("T", " ", "2011-08-17T15:00:00");

...或date

$date = date("Y-m-d H:i:s", strtotime("2011-08-17T15:00:00"));
+0

strtotime函数会自动为我删除T吗? – kaspernov

+0

如果你像上面那样格式化,是的。 –

+0

替换版本会更快。 strtotime是神奇/方便的,但不是很快。 –

由于只有一个T,你可以用str_replace()做到这一点:

$date = str_replace('T', ' ', $date); 

或替换特定的字符strtr()可能会更快:

$date = strtr($date, 'T', ' '); 

$result = str_replace("T", " ", $input_from_xml); 

智能的方式来容纳所有输入格式为:

$output = date('Y-m-d H:i:s', strtotime($input)); 

虽然str_replace可能会在特定情况下,快一点。

+0

这是否意味着strtotime函数会自动从字符串中移除T? – kaspernov

+0

@kaspernov:'strtotime'将您的时间字符串转换为数字Unix时间戳。 'date'采用Unix时间戳并将其转换回您选择的格式。所以最后,是的。 – netcoder