DEDECMS发布时间为1970年1月1日的解决方法
我们在用火车头采集的时候,一般很少有人采集文档的发布时间,基本都是采集了直接发布,所以今天我遇到一个问题,就是采集好的内容发布到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
这样你可以看到你刚才新加加的文章一所有字段值。
观察以下的数据:
pubdate:1231846313senddate:1231846313sortrank:1231846313
其中1231846313就是时间数据了。
然后就是替换了。
UPDATE dede_archives SET sortrank = 1231846313;UPDATE dede_archives SET senddate = 1231846313;UPDATE dede_archives SET pubdate = 1231846313;
首先,看到第一句话应该就可以pass他了,下面具体说说,他这个方法的问题在哪里(注:这种执行sql语句,或者需要修改数据库的一定先备份数据库)。
对应的是数据库的dede_archives表,请根据你的实际情况更换前缀。
这个表里有三个表示时间的字段:
pubdate:发布时间(前台可更改)
senddate:入库时间
sortrank:前台调用最新文章。实际上是用这个时间。
这段说的是没有问题的,我再详细的说下:
1.pubdate:发布时间(前台可更改)
在发布新文章或编辑文章时,可在高级参数里看到,可以更改。也是系统在内容页及列表页调用的时间。当发布时间为1970时,列表页会显示1970-01-01,而文章页获取的发布时间则为“暂无”,当然这个以dede默认模板为准,如果你修改了可能会有其他结果。如:我的待审核文章审核发布时会自动更新为当前系统时间(如果不会设置,看Dedecms未审核文档自动更新发布时间)
2.senddate:入库时间
根据字面意思即可理解,但是所谓的入库时间体现在哪里?就是dede后台档案列表中的“录入时间”,理论上dede后台无法修改,但实际也可以执行sql语句修改,并无实际意义。如果你的文章命名规则为“{typedir}/{Y}/{M}{D}/{aid}.html”的话,也直观的提现在你文章页的url中。
3.sortrank:前台调用最新文章。实际上是用这个时间。
这个时间我们一般看不到,但是前台模板设置为“orderby=’public’的话,系统就是按照这个时间来调用的。说了一大堆只是在强调这些细节,也算是讲讲原理吧。
其次,我们应该了解,即使是火车头采集,或者dede采集,pubdate、senddate、sortrank这三个时间也不可能完全一致,所以这里也有点问题,但是无伤大雅,最终要的在于,这个方案是修改了整个系统的数据库pubdate、senddate、sortrank的三个时间段,也就是说,从你发的第一篇文章,到最后一篇,都会变成你现在修改的这个时间,我第一次修改之后,整站的文章都成了3月19日发布的,可以说几乎所有的东西都乱了,这个大家应该能想明白,所以,我说备份很重要,转载这篇文章的人,确实很害人。这种方法我觉得没有什么可取的,完全用不上的。
二、正确的解决1970的方案
火车头采集发布时唯一不会错的就是系统录入时间,所以,我们以这个为标准,将public及sortrank时间改为senddate(声明下,先备份,后操作)。同时,网站采集比较多的考虑下,是不是有些文章的发布时间与入库时间相差很大?如3-19采集了很多篇,发布为待审核,通过插件控制每天自动更新,4-19才更新完,如果你执行两条命令的话,那原来审核最晚的那些文章也会变成3-19日发布,不过你可以选择只执行一条命令。)
如果你不介意上面我说的,确实需要解决1970的问题的话,在dede后台-系统-sql命令行工具,执行以下命令:
UPDATE dede_archives SET sortrank = senddate ;
这条命令是将前台调用时间也改成入库时间,如果你是我上面提到的那种,就不要执行了,至于1970还会不会有其他影响,自己斟酌
UPDATE dede_archives SET pubdate = senddate ;
这条命令是将发布时间改为入库时间,就不解释了,上面都说了
DEDECMS发布时间为1970年1月1日的解决方法相关推荐
- 漫话:为什么计算机起始时间是1970年1月1日?
这是我的第 203 期分享 作者 | 漫画编程 来源 | 漫画编程(ID:mhcoding) 分享 | Java中文社群(ID:javacn666) 问题复现 1970-01-01对于开发者来说都是不 ...
- 漫画:为什么计算机起始时间是 1970 年 1 月 1 日?
作者 | 漫话编程 来源 | 漫话编程(ID:mhcoding) 问题复现 1970-01-01对于开发者来说都是不陌生的,有些系统对于时间的处理如果不够好的话,就可能把时间显示成1970-01-01 ...
- 黑鲨5Pro国际版发布时间曝光 将于6月8日发布
黑鲨5Pro虽然已经推出许久,但最近有消息曝光黑鲨5Pro的国际版即将发布,而发布时间也定在了6月8日,下面就来看看详细内容吧. 黑鲨5Pro国际版发布时间曝光 将于6月8日发布 据 GSMArena ...
- 为什么计算机起始时间是1970年1月1日
1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本.随后,汤普逊和同事丹尼斯 ...
- java为什么计算时间从1970年1月1日开始
今天在看Python API 时,看到 time 模块 : The epoch is the point where the time starts. On January 1st of that ...
- 为什么编程时间从1970年1月1日开始?
最初计算机操作系统是32位,而时间也是用32位表示. System.out.println(Integer.MAX_VALUE); 2147483647 Integer在JAVA内用32位表示,因此3 ...
- 1970-01-01是什么?为什么计算机起始时间是1970年1月1日
我们是不是也曾见到过或者听说过1970-01-01,而且它好像常常存在于计算机行业,非常常见,从事IT行业的兄弟应该都接触过,那么到底为什么是1970-01-01,而不是其他呢? 其实,1970-01 ...
- 2019款新iPhone发布时间曝光:依旧9月12日亮相?
近段时间以来,手机圈最热门的爆料基本都集中在了以苹果新iPhone为代表的几款新机上,其中尤其新iPhone最受用户的关注.现在有最新消息,据外媒PhoneArena透露,2019款新iPhone有望 ...
- 计算机的起始时间 1970年1月1日
一.1970-01-01 Date date = new Date(0); System.out.println(date);//Thu Jan 01 08:00:00 CST 1970 查看 Dat ...
最新文章
- 万亿级企业MySQL海量存储分库分表设计实践
- ComponentOne Ultimate 2020中文版
- PS教程第十九课:移动工具
- python基础(18)之 异常处理
- 自动化特征提取器:图像特征提取和深度学习
- 一个Cmake的例子
- iOS-推送通知详解
- checkbox属性checked=checked已有,但却不显示打勾的解决办法
- Python脚本编译为可跨平台、跨架构执行的字节码文件pyc方法
- 小米4 win10 刷回android,小米4如何从win10刷回miui 小米4win10刷回小米系统教程
- 十大排序算法-桶排序(c语言实现)
- 【凯子哥带你学Framework】Activity启动过程全解析
- 七位高僧大德的临终开示,非大福报者不得见
- 计算机主机可以有几个硬盘,一台电脑可以安装盘几个硬盘?
- Linux后台日志定时清理脚本
- 【内网渗透】域横向PTHPTKPTT哈希票据传递
- 【愚人节小程序】Java Swing的简单使用
- php 2038,php实现兼容2038年后Unix时间戳转换函数
- 我国拟立法禁止大数据杀熟;工信部通报43款App违规整改不彻底丨钛晚报
- 【优化覆盖】基于matlab粒子群算法优化无人机编队布局求解车载网络通信覆盖优化问题【含Matlab源码 2021期】