dedecms好长时间没人维护,因为要给人做一个企业网站,就临时拿过来用,在发布文章那里,新发布的时间没问题,如果更改内容后在发布,发布时间变成了1970年1月1日,看了下数据库里的字段。新发布的记录的是发布时的时间戳,更新时变成了2021,应该是对提交的内容取了前面的整数部分,看了下dedecms的代码,问题出在\dede\article_edit.php的118行:
$pubdate = intval($pubdate);
这里直接把提交到后台的日期字符串用intval转成整形,导致只取了年的数值。
把这行注释掉,执行到129行的时候
$pubdate = GetMkTime($pubdate);
这里可以对日期格式的字符串进行时间戳转化。
试了试更新一边文章,时间对了。
然后去数据库里,把archives中的sortrank和pubdate,变更为senddate的值,不对的值也矫正过来了。