wordpress 2.6.3火车发布接口中设置多时区并存

2008年12月01日  星期一  Hypo @ 23:59:17     9,289 views     

上次写了《火车头wordpress 2.6.3 发布接口中时区的设置》发现,在浏览文章时显示的时间是正常的中国+8时区的时间,但在后台却不是这样的:明明是刚刚发布的文章,却显示是8个小时以前的。让海波再次迷惑了,但最终还是解决了,分享一下我的解决过程。

再次查看了SQL.PHP文件后找出了与时间有关的代码:
$showtime=date("Y-m-d H:i:s");
$tm=time();
$sql="INSERT INTO `".$table_prefix."posts` ( `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_category`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES (1, '$showtime', '$showtime', '$content', '$title', '$cid', '$summary', 'publish', 'open', 'open', '', '', '', '', '$showtime', '$showtime', '', 0, '', 0, 'post', '', 0)";

注意四个参数post_date、post_date_gmt、post_modified和post_modified_gmt,这四个参数的含义分别为发表时间、发表时间的格林威治时间、修改时间和修改时间的格林威治时间。

如下图,如果你在WP控制台上设置为非UTC(国际标准时间),如UTC+8,那么应该是post_date=post_date_gmt+8小时,post_modified=post_modified_gmt+8小时。但是从上述代码中可以看出,post_date、post_date_gmt、post_modified和post_modified_gmt都得到了$showtime这个值。所以在后台的显示就出现了问题。
wordpress 2.6.3火车发布接口中设置多时区并存

在查找相关资料并测试了N次之后依然没能解决,海波只好抛弃了资料,胡乱试验,运气真好还真找到了一个很简单的方法,那就是设置两次时区并赋值给不通的参数,我的代码如下:
date_default_timezone_set("GMT");
$showtime=date("Y-m-d H:i:s");
$tm=time();
date_default_timezone_set("PRC");
$showtimeprc=date("Y-m-d H:i:s");
$tm=time();
$sql="INSERT INTO `".$table_prefix."posts` ( `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_category`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES (1, '$showtimeprc', '$showtime', '$content', '$title', '$cid', '$summary', 'publish', 'open', 'open', '', '', '', '', '$showtimeprc', '$showtime', '', 0, '', 0, 'post', '', 0)";

换上以上代码后,就完美解决了文章在普通页面和后台的显示时间的一致。

转载请注明,转自:RenHaibo.com
本文链接地址:http://www.renhaibo.com/archives/46.html


分 类:WordPress | 发表评论 | trackback
标 签:,
上一篇:
下一篇:
  1. 本文有2条评论

  2. 趣味发烧友   发表于 2008年12月2日 09时48分51秒

    可以体验一下。你的博客不错。

    →回复此留言

  3. devilpan   发表于 2008年12月12日 09时29分54秒

    2.7出来了 不知道接口出来没?

    →回复此留言