今天发现博客的时区变成了 UTC(貌似上次迁移完服务器就这样了)
于是把时区改为 *上海
测试正常,然而之前发布的内容时间都修改不了
于是想到了操作数据库
直接上查询语句
UPDATE `wp_posts` SET `post_date` = DATE_ADD(post_date, INTERVAL 8 HOUR) WHERE `post_date` = `post_date_gmt`
UPDATE `wp_posts` SET `post_modified` = DATE_ADD(`post_modified`, INTERVAL 8 HOUR) WHERE `post_modified` = `post_modified_gmt`
UPDATE `wp_comments` SET `comment_date` = DATE_ADD(`comment_date`, INTERVAL 8 HOUR) WHERE `comment_date` = `comment_date_gmt`
原理:
由于时区是 UTC,所以 post_date 和 post_date_gmt 的值是一样的,所以使用 SQL 语句将 post_date 增加 8 小时,并将范围锁定为 post_date = post_date_gmt 这样就可以精准批量的修改时间了,评论和修改时间的替换同理。
值得注意的是,使用前请先分析 post_date 与 post_date_gmt 的关系再对语句进行适当的调整。
文章最后修订于 2017年9月9日
评论 (0)