碳解析度符合ISO8601

Ala*_*all 5 php laravel php-carbon

我正在尝试获取当前时间并将其格式化为:

"2018-09-26T21:40:29+02:00"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试:

$isoDate = \Carbon\Carbon::now()->format('c');
Run Code Online (Sandbox Code Playgroud)

据我了解,传递一个cto格式函数会将其解析为iso8601,但显然并非如此。

关于如何解析当前时间的任何帮助 ISO8601 OR 20181001T094006Z

Ran*_*eem 22

Carbon::now()->toISOString()
Run Code Online (Sandbox Code Playgroud)

这将返回 “2020-05-12T13:13:42.817684Z”

Carbon::now()->toIso8601String()
Run Code Online (Sandbox Code Playgroud)

这将返回 “2020-05-12T13:15:32+00:00”

使用核心PHP

date(DateTime::ATOM, time())
Run Code Online (Sandbox Code Playgroud)

这将返回 “2021-08-22T15:26:48+10:00”


Dev*_*von 9

没有单一的 8601 格式。8601 定义了各种可接受的格式,其中 PHPc是最常见的格式之一。

您希望的特定 8601 格式没有单个字符,但Ymd\THis\Z应该使用 的格式。 TZ是文字,所以用反斜杠将它们转义以避免它们在格式字符串中被解释。请确保此特定格式仅使用 UTC 时间戳。

http://php.net/manual/en/function.date.php列出了所有可接受的格式字符。

  • 是的。正如我在答案和评论中所说,8601有多种格式。 (2认同)

小智 8

echo Carbon::now()->toIso8601String();
Run Code Online (Sandbox Code Playgroud)