1

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

为简单起见,我创建了一个名为 的函数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;
}
4

1 回答 1

2

我实际上只是想通了这一点。 strtotime, 作为一种格式,可以接受不带冒号的时间

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

http://ideone.com/Z4hwQ

于 2011-01-21T20:11:38.790 回答