> 这个问题应该在php5.5.30 与 7.3.11中不再出现。或许,这是灵异问题。 因为近年一直使用在apache里以fast-cgi模式开以一个php5.3运行phpmyadmin; 前几天偶然发现这个问题并不存在了,或许以前真的只是灵异现象。
现象:
一直使用的phpmyadmin3.5版本(RELEASE-DATE-3.5.0,一个做了配置优化的版本 phpMyAdmin_3.5_path8.net),这个版本比较简洁,更新的pma有些臃肿。然而,在windows下使用php5.5, 及php7.0,都发现日期显示成乱码
方案:
文件 libraries/common.lib.php , 行1648行
$format = __('%B %d, %Y at %I:%M %p');
改成
$format = '%Y-%m-%d %H:%M:%S';
即可,日期格式显示格式示例 2016-01-27 11:49:07
原因:
PMA_localisedDate函数使用了strftime()函数,该strftime函数第一个参数为日期格式,phpmyadmin源程序使用了带中文的格式字符串;而在windows下的php版本,在做格式化时会转成乱码。经确认linux下没有这个问题,pma是正常的。
更好的方案
$format = __('%B %d, %Y at %I:%M %p'); //patch for win $fs_ver=explode('.',PHP_VERSION); if( $fs_ver[0] > 5 or ($fs_ver[0] = 5 && $fs_ver[1] >= 4) ){ if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'){ $format = '%Y-%m-%d %H:%M:%S'; } }
亦即:github. 这样可以更好的兼容性。
延伸阅读
- phpMyAdmin配置:操作栏只显示“浏览,结构,编辑”等图标不显示文字
- MySQL/phpmyadmin问题解决手记:#2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)
- 简单命令对mysql数据库的备份与还原
- phpmyadmin报错原因及解决方法:无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。
- phpmyadmin删除“追踪”(就是在表名旁的眼睛图标)/phpmyadmin(v3.3+)追踪功能简介
- 数据库中乱码记录查找与删除/sql server剔除乱码行
- ftp目录文件名乱码/使用原始ftp命令解决