Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP日期函数错误_Php - Fatal编程技术网

PHP日期函数错误

PHP日期函数错误,php,Php,我需要得到30年以上的未来,这就是为什么我使用下面的代码 $currentDate = date("Y-m-d"); $dateOneYearAdded = strtotime(date("Y-m-d", strtotime($currentDate)) . " +30 year"); $endYr = date('Y', $dateOneYearAdded); 但当我测试这段代码时,它只工作了26年。我只能在本年度加上26年。如果我尝试增加26个以上,那么它将恢复到1970年 以下代码工作

我需要得到30年以上的未来,这就是为什么我使用下面的代码

$currentDate = date("Y-m-d"); 
$dateOneYearAdded = strtotime(date("Y-m-d", strtotime($currentDate)) . " +30 year");
$endYr = date('Y', $dateOneYearAdded);
但当我测试这段代码时,它只工作了26年。我只能在本年度加上26年。如果我尝试增加26个以上,那么它将恢复到1970年

以下代码工作正常:

$currentDate = date("Y-m-d"); 
$dateOneYearAdded = strtotime(date("Y-m-d", strtotime($currentDate)) . " +26 year");
$endYr = date('Y', $dateOneYearAdded);
我的代码有问题吗?还是PHP函数中有错误?

请参阅以获取信息

UNIX时间戳统计自1970年以来的秒数,作为32位整数,其最大范围为2038

您应该使用对象


当然,如果要在数据库中存储日期,请确保使用日期或日期时间字段。

您要求的时间戳大于PHP可以在系统上保存的最大整数值。

根据PHP-

时间戳的有效范围为 通常从1901年12月13日星期五开始 2038年1月19日格林尼治标准时间20:45:54至星期二 03:14:07 GMT(以下是日期 与最小值和 32位有符号字符串的最大值 整数)。但是,在PHP5.1.0之前 该范围从1970年1月1日起受到限制 至19-01-2038,适用于某些系统(例如。 窗户)

所以一定要检查

这是因为

时间戳的有效范围为 通常从1901年12月13日星期五开始 2038年1月19日格林尼治标准时间20:45:54至星期二 03:14:07 GMT(以下是日期 与最小值和 32位有符号字符串的最大值 整数)。但是,在PHP5.1.0之前 该范围从1970年1月1日起受到限制 至19-01-2038,适用于某些系统(例如。 窗户)


您可以改用class

祝贺您,您遇到了。您可能需要切换到64位系统,或者使用可以表示(实际上)任意日期的类。

如果您想通过2030升级PHP,则需要使用datetime对象,如果您仍然在32位系统上,则这对您没有帮助-datetime是正确的解决方案。