strtotime将int转换为时间戳

时间:2011-01-21 20:01:19

标签: php strtotime

对于我正在处理的程序,我正在循环访问数据,我需要知道某个数据是否是日期。

为简单起见,我创建了一个名为is_date的函数,它看起来像这样:

function is_date($date){
    return strtotime($date) !== FALSE;
}

这似乎有效,但由于某种原因,它返回TRUE为int(不是日期)。

例如:

is_date('bob') //FALSE
is_date('01/05/2009') //TRUE
is_date('March 16, 2010') //TRUE
is_date(165000) //TRUE

为什么is_date(165000)返回TRUE? strtotime如何将165000转换为时间戳?

作为修复,我将is_date函数更改为:

function is_date($date){
    return !is_numeric($date) && strtotime($date) !== FALSE;
}

1 个答案:

答案 0 :(得分:2)

我其实只是想出来了。 strtotime作为一种格式,可以接受times without colons

因此,strtotime(165000)strtotime('16:50:00')相同。

http://ideone.com/Z4hwQ