Php 日期间隔不';t接受ISO 8601时间段(毫秒)
我有这个ISO 8601时间段字符串:P0Y0M0DT3H5M0.000S PHP7.4无法用它构造日期间隔Php 日期间隔不';t接受ISO 8601时间段(毫秒),php,dateinterval,Php,Dateinterval,我有这个ISO 8601时间段字符串:P0Y0M0DT3H5M0.000S PHP7.4无法用它构造日期间隔 <?php $d = new \DateInterval('P0Y0M0DT3H5M0.000S'); var_dump($d); 您可以使用 如果指定了类似P0Y0M0DT3H5M7.520S的表达式,则可以使用以下函数作为解决方法 function createDateInterval($interval_spec){ $f = 0.0; if(preg_match(
<?php
$d = new \DateInterval('P0Y0M0DT3H5M0.000S');
var_dump($d);
您可以使用
如果指定了类似P0Y0M0DT3H5M7.520S的表达式,则可以使用以下函数作为解决方法
function createDateInterval($interval_spec){
$f = 0.0;
if(preg_match('~\.\d+~',$interval_spec,$match)){
$interval_spec = str_replace($match[0], "", $interval_spec);
$f = (float)$match[0];
}
$di = new \Dateinterval($interval_spec);
$di->f= $f;
return $di;
}
$d = createDateInterval('P0Y0M0DT3H5M7.520S');
echo '<pre>';
var_export($d);
?@恐龙龙是的,这似乎是个问题。它更像是一只“被遗忘的虫子”。
function createDateInterval($interval_spec){
$f = 0.0;
if(preg_match('~\.\d+~',$interval_spec,$match)){
$interval_spec = str_replace($match[0], "", $interval_spec);
$f = (float)$match[0];
}
$di = new \Dateinterval($interval_spec);
$di->f= $f;
return $di;
}
$d = createDateInterval('P0Y0M0DT3H5M7.520S');
echo '<pre>';
var_export($d);
DateInterval::__set_state(array(
'y' => 0,
'm' => 0,
'd' => 0,
'h' => 3,
'i' => 5,
's' => 7,
'f' => 0.52,
'weekday' => 0,
'weekday_behavior' => 0,
'first_last_day_of' => 0,
'invert' => 0,
'days' => false,
'special_type' => 0,
'special_amount' => 0,
'have_weekday_relative' => 0,
'have_special_relative' => 0,
))