時間戳
| 版本 | 調整功能 |
|---|---|
| 5.0.10 |
增加autoWriteTimestamp方法動態設置時間字段寫入 |
| 5.0.6 | 增加時間字段自動格式輸出設置 |
| 5.0.5 | 時間戳字段支持自動格式化輸出 |
autoWriteTimestamp屬性支持設置為時間日期類名 |
系統支持自動寫(xie)入創(chuang)建和(he)更新的時間(jian)戳字(zi)段,有兩種方式配置支持。
第一種方式,是在數據庫配置文件(jian)中(zhong)添(tian)加全局(ju)設置:
// 開啟自動寫(xie)入時間(jian)戳字段
'auto_timestamp' => true,
第二種是直接在單獨的模型類里面設置:
protected $autoWriteTimestamp = true;
如果這兩個地方設置為true,默認識別為整型int類型,如果你的時間字段不是int類型的話,例如使用datetime類型(xing)的(de)話,可以這(zhe)樣設置:
// 開(kai)啟自(zi)動(dong)寫入時間戳(chuo)字(zi)段(duan)
'auto_timestamp' => 'datetime',
或者
protected $autoWriteTimestamp = 'datetime';
字段名默認創建時間字段為create_time,更新時間字段為update_time,支持的字段類型包括timestamp/datetime/int。
寫入數據的時候,系統會自動寫入create_time和update_time字(zi)段,而不需(xu)要定義修改器(qi),例如:
$user = new User();
$user->name = 'THINKPHP';
$user->save();
echo $user->create_time; // 輸(shu)出類似 2016-10-12 14:20:10
echo $user->update_time; // 輸(shu)出類似 2016-10-12 14:20:10
V5.0.5+版本開始,時間字段輸出的時候會自動進行格式轉換,如果不希望自動格式化輸出,可以把數據庫配置文件的datetime_format參數值改為false(V5.0.6+版本支持,之前(qian)版本可以使用類型轉換(huan)方式關閉自動(dong)格式化(hua))
如果你的數據表字(zi)段不(bu)是默認值的話(hua),可以按照下(xia)面(mian)的方(fang)式(shi)定義:
class User extends Model
{
// 定義時間(jian)戳字段名
protected $createTime = 'create_at';
protected $updateTime = 'update_at';
}
下面是修改字(zi)段(duan)后(hou)的輸出代碼:
$user = new User();
$user->name = 'THINKPHP';
$user->save();
echo $user->create_at; // 輸出類(lei)似 2016-10-12 14:20:10
echo $user->update_at; // 輸(shu)出(chu)類(lei)似 2016-10-12 14:20:10
如果你只需要使用create_time字段而不需要自動寫入update_time,則可以單(dan)獨設(she)置關閉某個字段,例如(ru):
class User extends Model
{
// 關(guan)閉自(zi)動寫入update_time字段
protected $updateTime = false;
}
如(ru)果(guo)不需要任何(he)自動寫入的時間(jian)戳字段的話,可(ke)以關(guan)閉時間(jian)戳自動寫入功能(neng),設置(zhi)如(ru)下:
class User extends Model
{
// 關閉自動寫入時間戳(chuo)
protected $autoWriteTimestamp = false;
}
如果是(shi)關(guan)閉全局的自動時間(jian)寫入,則(ze)可以(yi)使(shi)用:
// 關閉全(quan)局自(zi)動寫(xie)入時間字(zi)段(duan)
'auto_timestamp' => false,
