产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] bug报告,备份列表页面,备份时间显示出错

l12ab
金牌会员
7345.06 价值分

l12ab 发表于 2013-08-31 13:04:47
本帖最后由 l12ab 于 2013-9-1 12:33 编辑

Model/backups.php文件第48行
$backup_time = date('Y-m-d H:i:s', strtotime(str_replace('-', '', $backup_file_arr[0])));
这一段是执行amh ls_backup命令,根据返回结果,添加相应的记录到备份文件列表。
但是这一段是在php里执行的,php设置了北京时间,结果所有的列表里的“备份时间”都被加了9个小时或20个小时。(为什么是9个小时或者20个小时?)

因为$backup_file_arr[0]是文件名第一个点(.)前面部分,如n-20130831-040501
替换减号(-)后,变成n20130831040501
然后将该字符串转换成时间戳,对,错误就在这里。
这不是一个正确的时间格式字符串,如果把n去掉,就好了。


解决,把第48行替换成
$backup_file_arr[0] = str_replace('-', '', $backup_file_arr[0]);
$backup_file_arr[0] = str_replace('y', '', $backup_file_arr[0]);
$backup_file_arr[0] = str_replace('n', '', $backup_file_arr[0]);
$backup_file_arr[0] = str_replace('Y', '', $backup_file_arr[0]);
$backup_file_arr[0] = str_replace('N', '', $backup_file_arr[0]);
$backup_time = date('Y-m-d H:i:s', strtotime($backup_file_arr[0]));
当然,用正则的话,代码更少

写在后面
这应该是4.0版开始才有的问题,记得以前3.1或者3.2版,备份的文件名是没有最前面的y或者n的。
这个问题,我之前其实提过http://amysql.com/bbs/post-733-1-1.htm

另外
安装文件amh.sh有设置时区为北京时间,但是设置后导致cron的时间与系统时间不一致。我的系统cron文件里默认的时区(cat /etc/timezone)是美国东部,其他系统可能也不一致。
建议安装时做个判断
2013-08-31 13:04:47 1

amysql
创始人
16530.81 价值分

楼主很细心。
谢谢反馈,已做记录。
  支持 (0分)  反对 (0分)
回复  2013-08-31 14:48:35 2

AMH面板 - 好用高效低占用、安全可靠极稳定

 1  (总1页)
AMH社区列表
用户服务中心