Php strotime将整数转换为时间戳
对于我正在开发的一个程序,我在循环数据,我需要知道某个数据是否是日期 为简单起见,我创建了一个名为is_date的函数,它如下所示: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')
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:tostrotime
,d-m-Y
是有效的格式,m/d/Y
是有效的格式,但是d/m/Y
不是。你为什么给我推荐信?我向你指出这一点!?萝莉把它指给其他人看。另外,我向您展示了strotime不会“曲解”日期,它只是假设它们是某种格式。