Search code examples
phpphp-carbon

Carbon parse to ISO8601


I am trying to get the current time and format it like:

"2018-09-26T21:40:29+02:00"

But when I try:

$isoDate = \Carbon\Carbon::now()->format('c');

as I understood passing a c to format function will parse it to iso8601 but clearly thats not the case.

Any help on how to parse current time to ISO8601 OR 20181001T094006Z


Solution

  • There is no single 8601 format. 8601 defines various acceptable formats, of which PHP's c represents one of the most common forms.

    There is no single character for the specific 8601 format you wish but a format of Ymd\THis\Z should work. T and Zare literal, so escape them with a backslash to avoid them being interpreted in the format string. Be sure that only UTC timestamps are used with this particular format.

    http://php.net/manual/en/function.date.php lists all the acceptable format characters.