对于我正在处理的程序,我正在循环访问数据,我需要知道某个数据是否是日期。
为简单起见,我创建了一个名为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;
}
答案 0 :(得分:2)
我其实只是想出来了。 strtotime
作为一种格式,可以接受times without colons。
因此,strtotime(165000)
与strtotime('16:50:00')
相同。