Php strotime并检查时间戳是否有效

Php strotime并检查时间戳是否有效,php,Php,我遇到了一个strotime问题 $data['task_time_due'] = strtotime("+1 day"); 这将返回false $this->Utility->is_timestamp_valid($data['task_time_due']) Utility.php function is_timestamp_valid($timestamp) { return ((string) (int) $timestamp === $timestamp)

我遇到了一个strotime问题

$data['task_time_due'] = strtotime("+1 day");
这将返回false

$this->Utility->is_timestamp_valid($data['task_time_due'])
Utility.php

function is_timestamp_valid($timestamp)
{
    return ((string) (int) $timestamp === $timestamp) 
    && ($timestamp <= PHP_INT_MAX)
    && ($timestamp >= ~PHP_INT_MAX);
}

有人知道为什么吗?这个函数在我的整个应用程序中运行得非常好。

因为strotime返回int,而您正在严格地将它与string进行比较。将此字符串int$timestamp===$timestamp更改为此intstring$timestamp===$timestamp

为什么要通过字符串和int来强制转换函数的返回?因此,您在php.ini中设置了默认时区设置,或者设置了date\u default\u timezone\u?@D4V1D将时区设置为date.timezone