婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 網站建設 > 建站知識 > DEDECMS發布時間為1970年1月1日的解決方法

DEDECMS發布時間為1970年1月1日的解決方法

POST TIME:2021-05-24 02:58

    我們在用火車頭采集的時候,一般很少有人采集文檔的發布時間,基本都是采集了直接發布,所以今天我遇到一個問題,就是采集好的內容發布到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:1231846313
senddate:1231846313
sortrank: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命令行工具,執行以下命令:
 
1 UPDATE dede_archives SET sortrank = senddate ;

 
這條命令是將前臺調用時間也改成入庫時間,如果你是我上面提到的那種,就不要執行了,至于1970還會不會有其他影響,自己斟酌
 
1 UPDATE dede_archives SET pubdate = senddate ;
這條命令是將發布時間改為入庫時間,就不解釋了,上面都說了


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 遂平县| 临洮县| 保定市| 石嘴山市| 阿拉善左旗| 政和县| 河曲县| 元氏县| 高密市| 大方县| 五寨县| 游戏| 平邑县| 抚宁县| 于都县| 高平市| 金堂县| 苍山县| 英吉沙县| 达日县| 松原市| 开封县| 华坪县| 开远市| 陇川县| 德昌县| 昌平区| 伊吾县| 汽车| 海丰县| 宜城市| 桦川县| 上林县| 龙游县| 陆河县| 师宗县| 绵竹市| 津南区| 神农架林区| 贵港市| 盘山县|