|
Discuz! X 时间超过2038年1月19日以后无法启动问题的解决办法 无需升级MySQL
由于MySQL的时间是32位计数的,当计时时间超过 (UTC时间)2038年1月19日3时14分07秒 北京时间 2038年1月19日11时14分07秒,会导致计数溢出而无法启动。
将服务器的系统时间调回40年前的今天,并禁用时间同步等软件,由于需要和平闰年吻合,需要间隔40年。
打开文件 source\function\function_core.php 查找以下代码:
- if(!defined('IN_MOBILE')) {
- $return = '<span title="'.$s.'">'.$return.'</span>';
- }
复制代码
将这段代码注释后,继续向下几行查找以下代码:
在上方加入以下代码保存即可:
- $year = substr($return,0,4);
- if(is_numeric($year)){
- $new_year = $year + 40;
- $return = str_replace($year,$new_year,$return);
- }
复制代码
继续查找以下代码:
- return gmdate($format, $timestamp);
复制代码
将其修改为以下代码保存即可:
- $return = gmdate($format, $timestamp);
- $year = substr($return,0,4);
- if(is_numeric($year)){
- $new_year = $year + 40;
- $return = str_replace($year,$new_year,$return);
- }
- return $return;
复制代码
注意:修改前记得备份,防止修改出错出现空白页面,如果是现在改的话,会显示2058年。
|
|