Для программы, над которой я работал, я перебираю данные, и мне нужно было знать, была ли определенная часть данных датой или нет.
Для простоты я сделал функцию под названием 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;
}