PHP 向 Linnworks 发出 API 请求的日期和时间格式

PHP Date and Time Format for an API request to Linnworks

在 Linnworks API 文档中,其中一个 API 请求需要开始和结束日期。格式如下;

 2018-02-19T16:57:07.0049771+00:00

我不确定这种格式。这是某种默认格式还是我需要构建它?

如果我需要构建,我会得到明显的部分;

日期;

2018-02-19

时间;

T16:57:07

但是我不知道这部分是什么;

0049771+00:00

它是 Unix 时间戳和时区的 + 吗?

结尾部分是微秒和时区。

如果您使用 date("c") 或 $yourDateObject->format("c") 它应该会为您提供此格式 (ISO 8601) 的完整字符串。

这是 ISO8601 格式,表示:

Decimal fractions may be added to any of the three time elements. However, a fraction may only be added to the lowest order time element in the representation.

考虑到这里使用 "may" 这个词,我希望 API 应该允许您指定没有任何此类小数部分的时间戳,假设这对您的应用程序来说是可以接受的。 (免责声明——这是一个猜测。)

如果是这样,只需通过以下方式即可获得:

echo date('c');

产生:

2018-03-20T16:24:37-04:00

格式字符u(微秒)将return6个字符的长字符串(就php<7.1吧将是 000000)

如果您需要 7 个字符的长字符串,只需在末尾添加 0,如下所示:

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

它会输出这样的东西:2018-03-21T08:47:01.0263140+01:00