Pat*_*ick 9 php date date-formatting
我查看了以下问题/回答: 如何在php中获得"yyyy-MM-ddTHH:mm:ss.fffZ"的格式? 响应包括指向Microsoft文档的链接以格式化日期,但这些在PHP中不起作用.
最佳答案表明
date('Y-m-dTH:i:s.uZ') //for the current time
这输出
2013-03-22EDT12:56:35.000000-1440016
背景
我正在使用API,它需要上述格式的时间戳.该API位于英国(GMT),我的服务器位于澳大利亚(AEST).
API文档中给出的示例要求日期采用以下格式:
2011-07-15T16:10:45.555Z
我能得到的最接近的是日期('c')输出:
2014-07-03T16:41:59+10:00//Notice the Z is replaced with a time diff in hours
我相信'Z'指的是一个区域,但PHP文档中没有提到它.
不幸的是,当我发布这种格式时,API正在读取时间并花费10个小时.我收到一个错误,说日期不能过去(因为它是根据墨尔本的当地时间检查,但是提前10小时查看).
我已经尝试修剪时间戳以删除API接受的+1000,但记录显示为10小时前创建的.
我需要匹配所需的时间戳,但我找不到任何方法来复制上面的输出,在澳大利亚墨尔本的PHP中.非常感谢任何帮助.
关于SO的第一个问题,请让我知道我是怎么走的
Z代表时区UTC,在ISO-8601中定义,这是您想要的输出格式,扩展了毫秒部分.
在输出时间之前,您需要将本地时间转移到UTC:
$dt = new DateTime();
$dt->setTimeZone(new DateTimeZone('UTC'));
Run Code Online (Sandbox Code Playgroud)
那么你可以使用以下格式字符串:
echo $d->format('Y-m-d\TH-i-s.\0\0\0\Z');
Run Code Online (Sandbox Code Playgroud)
请注意,我已将毫秒零件归零并转义特殊字符T和Z格式模式.
| 归档时间: |
|
| 查看次数: |
20718 次 |
| 最近记录: |