苹果新闻API日期格式PHP
我正在尝试使用PHP访问Apple News“Create Article”API,出现以下错误:苹果新闻API日期格式PHP,php,date,iso8601,apple-news,Php,Date,Iso8601,Apple News,我正在尝试使用PHP访问Apple News“Create Article”API,出现以下错误: {"errors":[{"code":"INVALID_DATE_FORMAT"}]} 文件要求:“ISO 8601格式的当前日期” 因此,我得到的日期和格式如下: $date = date(DateTime::ISO8601); 哪个输出: 2016-04-26T07:04:53-0700 但我仍然得到了错误。有人知道为什么吗 使用gmdate(“Y-m-d\TH:i:s\Z”)或urle
{"errors":[{"code":"INVALID_DATE_FORMAT"}]}
文件要求:“ISO 8601格式的当前日期”
因此,我得到的日期和格式如下:
$date = date(DateTime::ISO8601);
哪个输出:
2016-04-26T07:04:53-0700
但我仍然得到了错误。有人知道为什么吗 使用
gmdate(“Y-m-d\TH:i:s\Z”)
或urlencode(substr(date(“c”),0,19)。“Z”
使用gmdate(“Y-m-d\TH:i:s\Z”);
或urlencode(substr(date(“c”),0,19)。“Z”
查看苹果Api参考()上的示例响应,日期格式如下:
2015-03-05T02:57:59Z
$date = (new DateTime)->setTimezone(new DateTimeZone('UTC'))->format(DateTime::ATOM);
请注意末尾的“Z”表示Zulu(又称UTC),因此可能值得将日期和时间转换为UTC,如下所示:
2015-03-05T02:57:59Z
$date = (new DateTime)->setTimezone(new DateTimeZone('UTC'))->format(DateTime::ATOM);
如果您明确要求在末尾输入“Z”(Zulu),则可以执行以下操作:
$date = (new DateTime)->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:s\Z');
旁注:要加载您自己的日期/时间(而不是现在使用),您可以将代码更改为:
$date = (new DateTime($yourDateTimeString))->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:s\Z');
e、 g
请注意!如果您要创建DateTime对象,请确保它知道您的原始时区。否则转换为UTC将不起任何作用,苹果的Api将把您的时间作为UTC,而不是本地时区。根据一般经验,始终将日期存储为UTC,然后在需要时转换回用户的本地时区查看。查看苹果Api参考()上的示例响应,日期格式如下:
2015-03-05T02:57:59Z
$date = (new DateTime)->setTimezone(new DateTimeZone('UTC'))->format(DateTime::ATOM);
请注意末尾的“Z”表示Zulu(又称UTC),因此可能值得将日期和时间转换为UTC,如下所示:
2015-03-05T02:57:59Z
$date = (new DateTime)->setTimezone(new DateTimeZone('UTC'))->format(DateTime::ATOM);
如果您明确要求在末尾输入“Z”(Zulu),则可以执行以下操作:
$date = (new DateTime)->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:s\Z');
旁注:要加载您自己的日期/时间(而不是现在使用),您可以将代码更改为:
$date = (new DateTime($yourDateTimeString))->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:s\Z');
e、 g
请注意!如果您要创建DateTime对象,请确保它知道您的原始时区。否则转换为UTC将不起任何作用,苹果的Api将把您的时间作为UTC,而不是本地时区。根据一般经验,始终将日期存储为UTC,然后在需要时转换回用户的本地时区查看。快速回答:
date('c', $timestamp);
还要检查:您是否以字符串形式提供日期,例如:
(在您的ANF文件中)
查看更多示例。苹果将正确处理(并尊重)时区。快速回答:
date('c', $timestamp);
还要检查:您是否以字符串形式提供日期,例如:
(在您的ANF文件中)
查看更多示例。苹果将正确处理(并尊重)时区。这可以通过标准使用日期功能来完成
echo日期('Y-m-d\TH:i:sO',time());
“O”的最后一部分属于时区的详细信息,例如“-0700”。可以通过标准使用日期函数来完成
echo日期('Y-m-d\TH:i:sO',time());
“O”的最后一部分属于时区的详细信息,例如“-0700”。这两个选项都不起作用-仍然会出现相同的错误。可能只是
date('c')
会起作用,但如API中的下一个回答中所述,日期看起来像2015-03-05T02:57:59Z
它正是gmdate(“Y-m-d\TH:i:s\Z”)
这两个选项都不起作用-仍然会出现相同的错误。也许只要date('c')
就可以了,但正如API中的下一个回答中所提到的,日期看起来像2015-03-05T02:57:59Z
这正是gmdate(“Y-m-d\TH:i:s\Z”);
谢谢!如果我得到这样的日期,你有例子吗?$date=date(DateTime::ISO8601);我应该以另一种方式获取它吗?当我尝试将其转换为UTC时,它表示我无法格式化非对象。谢谢!如果我以这种方式获取日期,您有没有示例?$date=date(DateTime::ISO8601);我应该以另一种方式获取它吗?当我尝试将其转换为UTC时,它表示我无法格式化非对象。