如何检查时间字符串(没有日期部分)是否为H:i:s格式的php

时间:2017-10-08 12:23:36

标签: php datetime formatting timestamp

我的时间字符串如下

8:7:9

17时34分38秒

我想检查字符串是否有H:i:s格式,如果我发现完全无效的字符串,如空,其他文本值,带日期部分的字符串(2017:10:12 18:39:21)

先谢谢..!

2 个答案:

答案 0 :(得分:0)

使用DateTime检查字符串是否与特定时间格式匹配:

if (!DateTime::createFromFormat('H:i:s', '2017-10-08 17:23:30')) {
    // time string does not match the H:i:s format
}

如果字符串与提供的格式匹配,则结果将是DateTime对象。如果不是,则结果将是布尔值false。所以你可以很容易地检查它。

答案 1 :(得分:0)

我首先使用下面的正则表达式匹配

if(preg_match("/\d{1,2}\:\d{1,2}\:\d{1,2}/",$value))
{
}

然后应用拆分并验证24,60和60

的个别时间部分