首页 > 解决方案 > 在 PHP 中用点转换时间戳(“yyyy.mm.dd hh:nn:ss.zzz”)

问题描述

我正在尝试使用匈牙利日期时间格式转换字符串,但由于点分隔符而没有成功:

<?php
$dtime = DateTime::createFromFormat("YY'.'MM'.'DD HH:MM:II frac", "2020.07.22 22:41:36.258");
$timestamp = $dtime->getTimestamp();
echo("Result: " . $timestamp . "<br>");
?>

没有这样的“字符串替换”是不是不可能的:
strtotime(preg_replace("/([0-9]{4})\.([0-9]{2})\.([0-9]{2})/",'${1}-${2}-${3}',$xml->delivery_time))

(我是 PHP 5 的新手,我很震惊它不能简单地转换一个通用的日期格式。搜索了 200 多个结果,浪费了 4 个多小时......没有成功。)

标签: phptimestamp

解决方案


正确的格式存储在$format变量中:(注意:v(millisec) 修饰符仅从 v7.3 开始添加)

<?php
$format = 'Y.m.d H:i:s.v';
$dtime = DateTime::createFromFormat($format, "2020.07.22 22:41:36.258");
$timestamp = $dtime->getTimestamp();
echo("Result: " . $timestamp . "<br>");
?>
Result: 1595457696

推荐阅读