程序员人生 网站导航

DEDECMS发布时间为1970年1月1日的解决方法

栏目:DedeCMS时间:2014-02-18 07:11:45

  我们在用火车头采集的时候,一般很少有人采集文档的发布时间,基本都是采集了直接发布,所以今天我遇到一个问题,就是采集好的内容发布到dede后,看到系统入库时间为3-19,正常,但是在文章页显示的时间为:暂无,列表页显示时间为1970-01-01,确实看着很不舒服,也不知道这个会不会对程序产生其他影响,初步猜测是在火车头的发布模块出了问题。

  还是原来的思维,能解决的话,尽量解决下,网上找教程。也真不太好找,找到的都是dede采集之内的,火车头采集虽然也是采集,但跟dede采集却又不一样,后来找到这样一个,先写在这,大家看到了一定不要尝试,否则你会后悔的。如果你只想知道如何解决1970的问题的话,这几段都可以略过。但希望你懂得他是如何实现的。

  一、错误解决方案剖析

  首先在phpMyAdmin查看dede_archives这个表的sortrank和pubdate的一个值,你的时间是1970-01-01 00:00:00他的值就是28800好像这个..你自己查看看,改现在现在的时间比如2009-08-13 00:00:00

  的值就是1250150400

  那么你在后台dede_archives这个表的sortrank和pubdate 把28800替换1250150400 搞定...

  批量替换发布时间,入库时间,更新时间的方法。

  首先要知道一个文章有三个时间。

  对应的是数据库的dede_archives表,请根据你的实际情况更换前缀。

  这个表里有三个表示时间的字段:

  pubdate:发布时间(前台可更改)

  senddate:入库时间

  sortrank:前台调用最新文章。实际上是用这个时间。

  我采集的文章不知道什么原因,入库后都是2021年的。后面手工增加的2009年的文章。

  在首页等地方用pubdate排序方式都只能调出采集的2021年文章,

  通过PHPMYADMIN查看发现有以上三个字段。

  注意:里面的数值不是直观的。

  如不是2009-01-13 14:13:32而是1231846313

  所以我们在批量替换的时候要这么做。

  第一步。在后台新增一个文章。

  得到一个时间,比如2009-01-13 14:13:32,这可以通过管理文章那里看到。

  第二步,后台执行SQL语句SELECT * FROM dede_archives order by id DESC limit 1

  这样你可以看到你刚才新加加的文章一所有字段值。

  

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐