我需要一个函数来验证变量的内容是否是一个有效的unix时间戳。
我检查这个线程:Check whether the string is a unix timestamp但问题是,在多数投票的答案的功能仍可能会导致一些错误,例如:
function is_timestamp($timestamp)
{
return ((string) (int) $timestamp === $timestamp)
&& ($timestamp <= PHP_INT_MAX)
&& ($timestamp >= ~PHP_INT_MAX);
}
// Some tests:
$timestamp = 1289216307;
var_dump(is_timestamp($timestamp));
var_dump(date('Y-m-d', $timestamp));
// result
bool(false)
string(10) "2010-11-08"
$timestamp = '20101108';
var_dump(is_timestamp($timestamp));
var_dump(date('Y-m-d', $timestamp));
// result
bool(true)
string(10) "1970-08-21"
这里,首先应该是TRUE和第二个应该是FALSE那么,测试$var
是否是真正有效的unix时间戳的最佳方法是什么?
在链接的问题的任择议定书的要求是验证**字符串是否**是有效的时间戳。你的第一个例子传递一个** integer **,所以它显然会返回false。 – Gordon 2012-05-23 16:27:14