|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
刚开始因为习惯于ASP格式的写法,总是在这些方面出现问题,自己还总是找不到问题所在,这就提醒了自己,在写代码的时候一定要认真,不能粗心地老是少个“;”或者字母大小写不分,要不然很可能找半天都找不到错误。 因为临时利用国外的空间,在我宣布 Blog 的时分发明工夫老是不合错误。根据我之前编写法式的经历,这是时区的成绩。这个成绩处理起来其实不难,写下我的处理路子以便往后参考。
PHP 剧本真个郊区设置可以在 php.ini 下设置 date.timezone 键的值为 'Asia/Shanghai' 便可。然而凡是同享虚拟主机自己没有修正 php.ini 权限。这个时分就应当在法式公共局部到场 ini_set('date.timezone','Asia/Shanghai'); 静态修正 php.ini 的设置。以后可以测试一下工夫是不是准确: var_dump(date()); 假如办事器的当地工夫是准确的,那末普通就可以处理成绩了。附,PHP 5.1 以上供应了专门的函数修正对应的时区: date_default_timezone_set('Asia/Shanghai'); 建议利用此函数,由于更通用一些。对应 'Asia/Shanghai' 其他可使用的大陆时区还有:Asia/Chongqing 、Asia/Shanghai 、Asia/Urumqi (顺次为重庆,上海,乌鲁木齐);港台区域可用:Asia/Macao、Asia/Hong_Kong、Asia/Taipei(顺次为澳门,喷鼻港,台北);还有新加坡:Asia/Singapore;其他可用的值是:Etc/GMT-8、Singapore、Hongkong、PRC;老外仿佛把北京漏调了。 然而,在我修正胜利 PHP 真个时区今后发明日期并没有准确的纪录上去。这个时分我思索是不是是数据库的成绩。果不其然,由于法式拔出的函数并没有挪用 PHP 的工夫,而是直接利用 MySQL 的 CURRECT_TIMESTAMP。这个时分就要思索是不是能修正 MySQL 方面的时区。 参考了 MySQL 的文档,发明一个可行的 SQL 语句为: SET GLOBAL time_zone = '+8:00'; 个中 '+8:00' 是东八区的暗示办法,其他的郊区顺次类推。而我在数据库模子中拔出改语句发明权限不敷(活该的虚拟主机供应商)。接上去我调试了良多语句,好比: DATE_ADD(UTC_TIMESTAMP(), INTERVAL 8 HOUR); 显示时区的 SQL 语句: SHOW VARIABLES LIKE 'system_time_zone' 等等。而因为 MySQL 权限的限制并没有完全的处理计划。我 Google 了下,发明老外这个有一个十分好的处理计划。然而他需求修正每条拔出数据的 SQL 语句。如许的计划并非十分的无效,一旦数据库时区改成正常,那末响应的 SQL 语句又要改回来。 而我思索既然 PHP 端已可以准确的处理工夫的成绩了。MySQL 数据库方面固然可使用响应的函数处理,然而假如往后迁徙到其余主机情况又要改回来。而响应的字段是一个 TIMESTAMP 类型的,默许的值为 CURRECT_TIMESTAMP,固然是可以指准时间的。 那末我的做法就是让 PHP 拔出以后准确的工夫,如许固然法式方面需求做响应的修正。不外往后设置装备摆设修正起来只需修正一处就能够了。最初拔出数据库的工夫注重一下格局: date('Y-m-d H:i:s')如许就能够处理成绩了。附,一些十分好的参考材料: 如许就能够处理成绩了。附,一些十分好的参考材料: http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2010/0226/4000.html 更新:由此 wiLdGoose 兄说他也碰着一样的成绩,然而没法处理。了局经由各种的假定和判别今后,到最初发明本来是 Zend Studio 的时区设置装备摆设成绩(我狂汗ing)。看来除去运转情况,开辟情况也是需求注重以下的。 <P style="TEXT-INDENT: 2em">
我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话: |
|