PHP日期时间字符串区分

时间:2013-06-03 05:05:06

标签: php datetime

我可以在两种情况下从字符串中创建日期对象,如下所示:

$dt = strtotime("2013-04-19 17:00:00");
//or
$dt = strtotime("10 hours");

我需要一种方法,以便区分这两种日期类型,无论是相对还是绝对数据字符串。

有任何可能的解决方案或线索吗?感谢。

2 个答案:

答案 0 :(得分:4)

目前还不是很清楚你想要什么,但是如果strtotime()函数无法帮助简单的正则表达式可以工作:

$regex = "/^\d{1,2} hours$/";

$type = (preg_match($dt, $regex) ? "relative" : "absolute");

只是让它脱离了我的头脑,它可以更精致((hours|minutes|seconds)或其他东西)。

值得注意的是,这种定制是典型的糟糕设计。 strtotime()听起来像是正确答案。

答案 1 :(得分:4)

您可以使用具有不同第二参数的strtotime。

if(strtotime($val) == strtotime($val, 0)){
   //date is absolute
} else {
   // date is relative
}
无论开始时间是什么时间,

2013-04-19 17:00:00始终为2013-04-19 17:00:00

10 hours的结果会有所不同,具体取决于现在的值是什么