網(wǎng)上找了怎么批量修改dedecms時間的方法,也就是這個語句
“update dede_archives set senddate= 1335542400 where id>=1 and id<=10;”
執(zhí)行了這個語句后文章的發(fā)布時間都更新了。正當(dāng)我高興的時候,發(fā)現(xiàn)新的問題來了:在用“一鍵更新網(wǎng)站”設(shè)定“指定時間的所有更新”,批量修改時間后的文章卻不能正常生成。
開始以為是時間沒有修改正確,但是試了好幾次都沒成功。后來發(fā)現(xiàn)了問題的所在,也就是我把指定生成的時間改到文章之前的發(fā)布時間,就可以生成了。根據(jù)這個問題我判斷是“指定時間的所有更新”調(diào)用的不是dede_archives這個表。最后查看代碼發(fā)現(xiàn)調(diào)用的是dede_arctiny這個表。那我就相應(yīng)的做出了調(diào)整,執(zhí)行以下的語句就發(fā)現(xiàn)可以正常的更新了。
update dede_archives set pubdate=FLOOR(UNIX_TIMESTAMP('2016-04-19 00:00:00')-46800 + RAND() * (86400)) where id>=8300 ;
這條語句的意思指定時間段隨機(jī)生成更新時間,里面有三個標(biāo)紅的位置,一個是“-46800”因為我的網(wǎng)站“經(jīng)驗分享網(wǎng)”用的是美國的主機(jī),有13個小時的時差,所以-46800秒。如果你用的主機(jī)是中國的話,就可以把這個時間差的值給去掉。“86400”折算出來就是24個小時。這樣就可以理解隨機(jī)的時間是“2016-04-19 00:00:00”至“2016-04-19 23:59:59”。“8300”就是你的文章ID 。黑色顯示的時間與這三個紅色標(biāo)紅都可以根據(jù)自己的需要進(jìn)行修改。
update dede_arctiny t set senddate=(select senddate from dede_archives where t.id=id) where id>=8300 ;
這條語句是更新了“一鍵生成”功能用到的更新時間,這個語句是把dede_arctiny表與dede_archives表時間設(shè)置為一致 。
另外需要說明的是dede_archives這個表里有兩個個時間 ,pubdate文章更新時間,senddate數(shù)據(jù)產(chǎn)生的時間。只要修改pubdate的時間就可以讓文章前臺顯示更新時間為這個時間,如果你想把senddate的時間也要與文字時間一致那你就再執(zhí)行下面的語句就可以了 。
update dede_archives set senddate=pubdate where id>=8300 and arcrank=-1;
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!