将Datetime类格式化为'2013-08-05T10:00:00'

时间:2013-08-08 04:36:19

标签: php datetime

我在PHP上使用Datetime类。

您可以将datetimeclass更改为此类字符串。

$date->format('Y-m-d H:i:s')
// it shows 2013-08-05 10:00:00

但不知何故,Google API需要这样的格式。

2013-08-05T10:00:00

这个T意味着什么?

如何从DateTime类中整齐地创建这个样式字符串?

4 个答案:

答案 0 :(得分:3)

时间为ISO 8601格式。 To print it out, you can use 'c' format character:

$date->format('c')

答案 1 :(得分:1)

您可以使用上面的jh314's解决方案,它会为您提供以下格式的时间:

2013-08-08T10:18:15+05:30

但是,要将其格式化为您想要的格式,您可以使用以下内容:

$part1 = $date->format('Y-m-d');  // 2013-08-08
$part2 = $date->format('H:i:s');  // 10:19:37
$newdate = "{$part1}T{$part2}";   // 2013-08-08T10:19:37

或者更好:

$date = $date->format('Y-m-d\TH:i:s'); // 2013-08-08T10:19:37

Ta-dah!

答案 2 :(得分:0)

这是ISO 8601日期时间格式check this

$date->format('c')   //Output 2004-02-12T15:19:21+00:00

答案 3 :(得分:0)

这几乎是,但不完全是ISO8601格式,所以你需要格式化输出如下: -

$date = new \DateTime();
echo $date->format('Y-m-d\TH:i:s');

\逃脱'T'。有关格式化日期,请参阅the manual

See it working