1

我在 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

4 回答 4

3

时间采用ISO 8601格式。 要打印出来,您可以使用'c'格式字符:

$date->format('c')
于 2013-08-08T04:43:15.213 回答
1

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

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

达达!

于 2013-08-08T04:47:31.737 回答
0

这是 ISO 8601 日期时间格式检查这个

$date->format('c')   //Output 2004-02-12T15:19:21+00:00
于 2013-08-08T04:55:08.570 回答
0

这几乎是 ISO8601 格式,但不完全是 ISO8601 格式,因此您需要像这样格式化输出:-

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

\逃脱'T' 。请参阅有关格式化日期的手册。

看到它工作

于 2013-08-08T05:22:58.403 回答