2017-04-19 76 views

回答

3

是的,创建一个格式字符串,使用DateTime类从使用方法createFromFormat的格式解析。这真是一个神奇的课程!

PHP.net对这个优秀的文档:http://php.net/manual/en/datetime.createfromformat.php

他们甚至有一个例子靠近你的具体问题,你只需要调整它一下:

$mytime = '23h15m03s'; 
    echo DateTime::createFromFormat('H\hi\ms\s',$mytime)->format('H:i:s'); 

如果你有一个偶尔会有部分掉落(例如你的例子中的几小时),你需要使用格式来让它起作用。

+1

@webDev看起来像它会适用于这种情况,但你将如何处理这个例子:'22m55s'。你需要一些额外的逻辑('strtotime()'会把它看作'hh:mm',你会得到22:55:00不是00:22:55) – Ray

+0

你是对的@Ray,我没想到关于这一点,我已经做了简单的调整,请你看看,让我知道这是否会工作,非常感谢你 – webDev

+0

当然,它会工作,但我永远不会推荐它!如果你正在使用正则表达式路线,你可能会想出一个单一的表达式来涵盖这两种情况。 – Ray