对于我正在处理的程序,我正在循环数据,我需要知道某条数据是否是日期。
为简单起见,我创建了一个名为 的函数is_date
,它看起来像这样:
function is_date($date){
return strtotime($date) !== FALSE;
}
这似乎有效,但由于某种原因,它返回TRUE
整数(不是日期)。
例如:
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;
}