我有点困惑为什么以下失败。我有一个格式为的日期时间字符串
YmdHisv
假设字符串 =20201212000000000
为什么以下会失败(忽略奇数输入)?
$year = date("Y");
$input = ($year."1212"."00000000"."0");
$format = "YmdHisv";
$stamp = DateTime::createFromFormat($format,$input);
由此返回的错误是:
'error_count' => int 2
'errors' =>
array (size=2)
14 => string 'The format separator does not match' (length=35)
15 => string 'Trailing data' (length=13)
如果我删除毫秒就没有问题了。
编辑:执行以下操作将返回 3 位数的毫秒时间。所以不确定为什么我的毫秒无效。
$now = new DateTime();
echo $now->format("v");
编辑:看起来以下也会失败。有(微秒)奇怪行为的文档,但是(毫秒)u呢?v
$format = "YmdHisv";
$now = new DateTime();
$now = $now->format($format);
$stamp = DateTime::createFromFormat($format,$now);
编辑:我可能有我的答案,但正在寻找更多解释[来自文档]
与格式化修饰符不同,createFromFormat 不接受“.v”修饰符。
一只名叫tom的猫