我想字符串转换为时间, 字符串我已经都是这种格式, “1个小时”,“1小时”,“2小时30分钟”,“3小时45分钟”字符串转换为时间
我想将它们转换为H:i:s格式。所以它看起来如3:45:00
当前我正在使用str_pos在hr之前获取字符,并将它们剥离并将它们加入以形成h:i:s格式。
$data = strtolower($data);
$hours = '00';
$minutes = '00';
$seconds = '00';
$pos = strpos($data, "h");
if ($pos !== false) {
$hours = str_replace([' ', ':', ','], '', substr($data, 0, $pos));
$data = str_replace(['hours', 'hour', 'hrs', 'hr'], '', substr($data, $pos));
}
$pos = strpos($data, "m");
if ($pos !== false) {
$minutes = str_replace([' ', ':', ','], '', substr($data, 0, $pos));
$data = str_replace(['minutes', 'minute', 'mins', 'min'], '', substr($data, $pos));
}
$pos = strpos($data, "s");
if ($pos !== false) {
$seconds = str_replace([' ', ':', ','], '', substr($data, 0, $pos));
}
return $hours . ':' . $minutes . ':' . $seconds;
类似于分钟....
没有更好的和简单的方法来做到这一点?无论如何,我可以使用DateTime方法吗?
https://eval.in/681782。这是你想要的吗? –
不好,但应该工作:'$ string ='3小时45分钟'; $ dateTime = DateTime :: createFromFormat('h \ h \ o \ ur i \ m \ i \ n \ u \ t \ e \ s',$ string); var_dump($ dateTime-> format('H:i:s'));' – swidmann
Abhishek Salian查看评论和答案,让我们知道 –