You need to enable JavaScript to run this app. PHP调用REST API如何拼接24小时时段ISO 8601格式时间参数生成请求URL
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用REST API如何拼接24小时时段ISO 8601格式时间参数生成请求URL

修复方案

原有代码错误点

  • PHP语法错误:date() 调用未传入必填的格式参数,且URL拼接末尾多了多余的.符号,直接触发PHP代码运行异常,返回500状态码
  • 时间逻辑错误:原有代码仅提取年月日拼接固定0点时间,不符合「24小时前到当前时间」的需求,也未生成符合接口要求的完整ISO 8601格式时间
  • URL拼接错误:使用HTML转义符&作为参数分隔符,PHP发送HTTP请求时应直接使用&作为参数分隔符

正确实现代码

<?php
// 配置时区,若接口要求UTC时间可改为UTC
date_default_timezone_set('Asia/Shanghai');

// 生成24小时前的ISO 8601格式时间
$from = date('Y-m-d\TH:i:s', strtotime('-24 hours'));
// 生成当前时间的ISO 8601格式时间
$to = date('Y-m-d\TH:i:s');

// 拼接请求URL
$url = 'https://cloud.aeroqual.com/api/data/AQM65%2017112020-804?from=' . $from . '&to=' . $to . '&averagingperiod=60&includejournal=false';

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Cookie: .MONOAUTH=C5PBclbeW29kqexXRGTlXaHImDoLhxR/YzALxc44/SZ+KQV2XuMsZps6OJnXMSi56gjRsQ6ED6GIcH7Fk8XCoJ80IrpsTUDPO+Bmf0tVKaPZtIzpwe7ff3QqBKZLFGZK; ASP.NET_SessionId=9F89912F7F571A228B63ACEC; AWSELB=95CB9B4302EC8CCB93BD1C1D5C4630880B3D9B3CCF5F0CE3F60EF45F0604C252A119CAE7D802D28AE24434CB392308307A6E5617B4045026B161BDB6886AF9E5C0388BFFED; AWSELBCORS=95CB9B4302EC8CCB93BD1C1D5C4630880B3D9B3CCF5F0CE3F60EF45F0604C252A119CAE7D802D28AE24434CB392308307A6E5617B4045026B161BDB6886AF9E5C0388BFFED'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

常见疑问解答

  • cURL完全支持传入变量作为请求URL,只要变量值符合URL规范即可正常发起请求
  • 时间格式字符串中的\T是为了原样输出T字符,避免被date()函数解析为时间参数
  • 若接口对时间时区有要求,调整date_default_timezone_set的参数即可适配

内容的提问来源于stack exchange,提问作者Periklis Kakarakidis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 01:48:03