用php解析计时器

用php解析计时器,php,datetime,Php,Datetime,我正在尝试以以下格式解析计时器字符串值:“01:40.911” DateTime::createFromFormat('i:s.v','01:40.91'); 但是我得到的返回值为false,这个问题与毫秒有关,当我以相同的格式生成日期时间时,它看起来是相同的。e、 g: $d = new DateTime('now'); var_dump($d->format('i:s.v')); 将导致:58:42.001 我做错了什么?评论中已经回答了这个问题 下面是一些解析字符串的变体,如“

我正在尝试以以下格式解析计时器字符串值:“01:40.911”

DateTime::createFromFormat('i:s.v','01:40.91');
但是我得到的返回值为false,这个问题与毫秒有关,当我以相同的格式生成日期时间时,它看起来是相同的。e、 g:

$d = new DateTime('now');

var_dump($d->format('i:s.v'));
将导致:58:42.001


我做错了什么?

评论中已经回答了这个问题

下面是一些解析字符串的变体,如“01:40.911”

$strTime =  '01:40.911';
date_default_timezone_set('Europe/Berlin');

//PHP >= 7.3
$dt = DateTime::createFromFormat('i:s.v',$strTime);
var_export($dt);

//PHP >= 5.4.30
$dt = DateTime::createFromFormat('i:s.u',$strTime);
var_export($dt);

$dt = date_create('00:'.$strTime);
var_export($dt);
输出:

DateTime::__set_state(array(
   'date' => '2020-04-17 00:01:40.911000',
   'timezone_type' => 3,
   'timezone' => 'Europe/Berlin',
))
DateTime::__set_state(array(
   'date' => '2020-04-17 00:01:40.911000',
   'timezone_type' => 3,
   'timezone' => 'Europe/Berlin',
))
DateTime::__set_state(array(
   'date' => '2020-04-17 00:01:40.911000',
   'timezone_type' => 3,
   'timezone' => 'Europe/Berlin',
)) 

可能是php版本问题是的,是的。谢谢
v
是PHP7.3中的
createFromFormat()
的新版本。您可以使用
u
s