Php strotime将整数转换为时间戳

Php strotime将整数转换为时间戳,php,strtotime,Php,Strtotime,对于我正在开发的一个程序,我在循环数据,我需要知道某个数据是否是日期 为简单起见,我创建了一个名为is_date的函数,它如下所示: function is_date($date){ return strtotime($date) !== FALSE; } 这似乎是可行的,但出于某种原因,它返回了int(不是日期)的TRUE 例如: is_date('bob') //FALSE is_date('01/05/2009') //TRUE is_date('March 16, 2010')

对于我正在开发的一个程序,我在循环数据,我需要知道某个数据是否是日期

为简单起见,我创建了一个名为is_date的函数,它如下所示:

function is_date($date){
    return strtotime($date) !== FALSE;
}
这似乎是可行的,但出于某种原因,它返回了int(不是日期)的
TRUE

例如:

is_date('bob') //FALSE
is_date('01/05/2009') //TRUE
is_date('March 16, 2010') //TRUE
is_date(165000) //TRUE
为什么
日期(165000)
返回TRUE?如何将165000转换为时间戳

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

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

事实上,我刚刚发现了这一点
strotime
作为一种格式,可以接受

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


您也可以随时查看php.net,
strotime
对输入进行假设,请小心,如果您不小心,有时它会错误地解释天/月,如果它们以不同的格式出现(2011年10月1日与2011年1月10日-哪个是月/日?@Jakub:请查看答案(及其注释)对于这个问题:@Jakub:to
strotime
d-m-Y
是有效的格式,
m/d/Y
是有效的格式,但是
d/m/Y
不是。你为什么给我推荐信?我向你指出这一点!?萝莉把它指给其他人看。另外,我向您展示了strotime不会“曲解”日期,它只是假设它们是某种格式。