提供一種新的時(shí)間類型:date(格式:XXXX年—XX月—XX日) 名稱:日期類型
使用范圍:自動(dòng)模型的附加表,獨(dú)立模型表
優(yōu)點(diǎn):可以使用mysql自帶的日期處理/日期轉(zhuǎn)換函數(shù),也可以對(duì)date字段進(jìn)行排序。
這是mysql數(shù)據(jù)庫自帶的一種數(shù)據(jù)類型,可以使用字符串或數(shù)字向表中的date類型列插入數(shù)據(jù)。Dede默認(rèn)的時(shí)間類型只有datetime,而且是UNIX時(shí)間戳,操作只有使用dede提供的函數(shù)進(jìn)行轉(zhuǎn)換,使用上很不方便(例如:SQL語句中直接使用日期函數(shù)或者按年—月—日排序如何處理?)。為什么只提供這種時(shí)間類型呢?我不理解,我沒有使用過linix系統(tǒng),是不是基于這種考慮我不清楚。閑話少說,請(qǐng)大家看操作步驟:
一、修改mychannel_field_add.php
文件作用:增加指定的內(nèi)容頻道表的字段(前臺(tái)程序)
修改目的:增加一種字段類型
文件位置:DedeAMPZWebRootDefaultdede
操作:增加紅色顯示的內(nèi)容
…………………………
…………………………
<td bgcolor="#FFFFFF">
<div class='nw'><input type='radio' class='np' name='dtype' id='dtype1' value="text" checked='1'>單行文本(varchar)</div>
…………………………
…………………………
…………………………
<div class='nw'><input type='radio' class='np' name='dtype' id='dtype16' value="stepselect">聯(lián)動(dòng)類型</div>
<div class='nw'><input type='radio' class='np' name='dtype' id='dtype17' value="date">日期類型</div>
二、修改mychannel_field_edit.php
文件作用:編輯指定的內(nèi)容頻道表的字段(前臺(tái)程序)
修改目的:增加一種字段類型
文件位置:DedeAMPZWebRootDefaultdede
操作:增加紅色顯示的內(nèi)容
…………………………
…………………………
if($canchange)
{
?>
<option value="text">單行文本(varchar)</option>
…………………………
…………………………
<option value="stepselect">聯(lián)動(dòng)類型</option>
<option value="date">日期類型</option>
<?php
}
?>
</select> </td>
三、修改fieldtype.txt
文件作用:系統(tǒng)指定的字段類型
修改目的:增加一種字段類型,注意標(biāo)點(diǎn)符號(hào)是半角
文件位置:DedeAMPZWebRootDefaultdedeinc
操作:增加紅色顯示的內(nèi)容
…………………………
…………………………
checkbox,checkbox多選框
stepselect,聯(lián)動(dòng)類型
date,日期類型
四、修改inc_admin_channel.php
文件作用:對(duì)前臺(tái)內(nèi)容頻道提交的數(shù)據(jù)進(jìn)行處理
修改目的:增加對(duì)date日期類型的處理(原程序沒有這個(gè)類型,不增加就會(huì)默認(rèn)處理成字符類型)
文件位置:DedeAMPZWebRootDefaultdedeinc
操作:增加紅色顯示的內(nèi)容
…………………………
…………………………
if($dtype=="int"||$dtype=="datetime")
{
if($dfvalue=="" || ereg("[^0-9-]",$dfvalue))
{
$dfvalue = 0;
}
$fields[0] = " `$fieldname` int(11) NOT NULL default '$dfvalue';";
$fields[1] = "int(11)";
}
else if($dtype=="date")
{
if($dfvalue=="" || ereg("[^0-9-]",$dfvalue))
{
$dfvalue = '0000-00-00';
}
$fields[0] = " `$fieldname` date NOT NULL default '$dfvalue';";
$fields[1] = "date";
}
else if($dtype=="stepselect")
{
…………………………
…………………………
五、你可以仿照這種辦法,在自動(dòng)模型的附加表或獨(dú)立模型表中增加新類型datetime,取消UNIX時(shí)間戳,但難度稍大。
六、關(guān)于在SQL語句中使用mysql日期函數(shù)/轉(zhuǎn)換函數(shù),請(qǐng)參閱互聯(lián)網(wǎng)。