PHP DateTime如何格式化为2023-01-27T17:37:00.000Z格式?
PHP DateTime 格式化目标格式的正确写法
正确格式代码
要生成2023-01-27T17:37:00.000Z这种UTC标准格式的时间字符串,正确的格式符和代码如下:
// 确保使用UTC时区,避免Z后缀与实际时区不匹配 $date = new DateTime('now', new DateTimeZone('UTC')); // 格式化字符串,转义特殊字符T和Z,固定三位毫秒 $string = $date->format('Y-m-d\TH:i:s.000\Z');
如果需要保留实际的微秒并截断为三位(比如123而非固定000),可以用:
$string = $date->format('Y-m-d\TH:i:s.u\Z'); // 此时输出会是类似2023-01-27T17:37:00.123456Z,若需要严格三位毫秒,可截取字符串或用固定000
你之前代码的问题
你写的format('Y-m-dTHH:H:i:s')有几个错误:
T是DateTime的特殊格式符(代表时区缩写,比如UTC),需要用反斜杠\T转义成普通字母T- 格式符重复错误:
HH:H是无效写法,24小时制小时只用H即可,正确的时分秒格式是H:i:s - 缺少目标格式要求的毫秒部分(
.000)和末尾的Z(同样需要转义为\Z)
在线辅助查询方式
可以直接查阅PHP官方文档中的「日期与时间格式」章节,也有不少在线PHP日期格式化测试工具,输入格式符就能实时看到输出效果,搜索相关关键词即可找到。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

