欢迎光临
我们一直在努力

关于php中strtotime返回回值

网上以下面代码判断传入参数是否可以转换为时间戳,这种方法是不可取的。

$time = strtotime($time) !== false ? strtotime($time) : $time; // 这是错误方法

下面列出strtotime的返回值:有interger和boolean两种。

echo strtotime('2020-09-18 2:23:19'); // 1600395799
echo "\r\n";
echo strtotime('2020-09-18 2:23:20'); // 1600395799
echo "\r\n";
echo gettype(strtotime('2020-09-18 2:23:20')); // integer
echo "\r\n";
echo strtotime('1600367999'); // 190279468836
echo "\r\n";
echo strtotime('1600367000'); // 158754096036
echo "\r\n";
echo gettype(strtotime('1600367000')); // integer
echo "\r\n";
echo gettype(strtotime('abc')); // boolean
echo "\r\n";

因此我们可以通过以下方法判断是否可以转换为时间戳

$time = is_numeric($time) ? $time : strtotime($time);

另外附上对$time传参合法性判断

function checkDateTime($data)
{
    return date('Y-m-d H:i:s', strtotime($data)) == $data ? true : false;
}
$date = '2020-09-19';
var_dump(checkDateTime($date)); // false

$date = '12:00:01';
var_dump(checkDateTime($date)); // false

$date = '2020-09-19 12:00:01';
var_dump(checkDateTime($date)); // true

$date = 'aaaa';
var_dump(checkDateTime($date)); // false

$date= '1600367999';
var_dump(checkDateTime($date)); // false
赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » 关于php中strtotime返回回值

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址