Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
苹果新闻API日期格式PHP_Php_Date_Iso8601_Apple News - Fatal编程技术网

苹果新闻API日期格式PHP

苹果新闻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

我正在尝试使用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”)
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时,它表示我无法格式化非对象。