PHP实现Blogger API时间格式转毫秒的技术求助
解决Blogger API时间戳转毫秒数的问题
别担心,这个带时区的ISO 8601格式时间戳转换其实很容易搞定!你遇到的2018-01-26T07:06:00-08:00是标准的ISO 8601带偏移时区的时间格式,PHP的DateTime类可以直接解析它,完全不需要手动拆分字符串。
方法一:用DateTime类(推荐,时区处理更可靠)
这是最稳妥的方式,能正确处理时区偏移,避免不同时区下的转换误差:
// Blogger API返回的时间戳 $bloggerTimestamp = '2018-01-26T07:06:00-08:00'; // 初始化DateTime对象,自动解析带时区的格式 $dateObj = new DateTime($bloggerTimestamp); // 获取秒级时间戳后乘以1000得到毫秒数 $milliseconds = $dateObj->getTimestamp() * 1000;
方法二:用strtotime快速转换
如果你的PHP版本在5.2及以上,strtotime也能直接识别这种格式,实现快速转换:
$bloggerTimestamp = '2018-01-26T07:06:00-08:00'; $seconds = strtotime($bloggerTimestamp); $milliseconds = $seconds * 1000;
验证转换结果
你可以用自己熟悉的代码把毫秒数转回去,验证转换是否准确:
$seconds = $milliseconds / 1000; echo date("d M Y, D", $seconds); // 输出:26 Jan 2018, Fri(会转换为服务器默认时区的显示,若要保持原时区,建议用DateTime的format方法)
如果需要严格保持原时间戳的时区显示,推荐用DateTime自带的format方法:
echo $dateObj->format("d M Y, D"); // 同样输出正确的日期,且严格尊重原时间戳的时区偏移
内容的提问来源于stack exchange,提问作者topper1309
相关产品推荐
相关产品推荐

