時間戳

版本 調(diào)整功能
5.0.10 增加autoWriteTimestamp方法動態(tài)設置時間字段寫入
5.0.6 增加時間字段自動格式輸出設置
5.0.5 時間戳字段支持自動格式化輸出
  autoWriteTimestamp屬性支持設置為時間日期類名

系統(tǒng)支持自動寫入創(chuàng)建和更新的時間戳字段,有兩種方式配置支持。

第一種方式,是在數(shù)據(jù)庫配置文件中添加全局設置:

// 開啟自動寫入時間戳字段
'auto_timestamp' => true,

第二種是直接在單獨的模型類里面設置:

protected $autoWriteTimestamp = true;

如果這兩個地方設置為true,默認識別為整型int類型,如果你的時間字段不是int類型的話,例如使用datetime類型的話,可以這樣設置:

// 開啟自動寫入時間戳字段
'auto_timestamp' => 'datetime',

或者

protected $autoWriteTimestamp = 'datetime';

字段名默認創(chuàng)建時間字段為create_time,更新時間字段為update_time,支持的字段類型包括timestamp/datetime/int。

寫入數(shù)據(jù)的時候,系統(tǒng)會自動寫入create_timeupdate_time字段,而不需要定義修改器,例如:

$user = new User();
$user->name = 'THINKPHP';
$user->save();
echo $user->create_time; // 輸出類似 2016-10-12 14:20:10
echo $user->update_time; // 輸出類似 2016-10-12 14:20:10

V5.0.5+版本開始,時間字段輸出的時候會自動進行格式轉換,如果不希望自動格式化輸出,可以把數(shù)據(jù)庫配置文件的 datetime_format 參數(shù)值改為falseV5.0.6+版本支持,之前版本可以使用類型轉換方式關閉自動格式化)

如果你的數(shù)據(jù)表字段不是默認值的話,可以按照下面的方式定義:

class User extends Model 
{
    // 定義時間戳字段名
    protected $createTime = 'create_at';
    protected $updateTime = 'update_at';
}

下面是修改字段后的輸出代碼:

$user = new User();
$user->name = 'THINKPHP';
$user->save();
echo $user->create_at; // 輸出類似 2016-10-12 14:20:10
echo $user->update_at; // 輸出類似 2016-10-12 14:20:10

如果你只需要使用create_time字段而不需要自動寫入update_time,則可以單獨設置關閉某個字段,例如:

class User extends Model 
{
    // 關閉自動寫入update_time字段
    protected $updateTime = false;
}

如果不需要任何自動寫入的時間戳字段的話,可以關閉時間戳自動寫入功能,設置如下:

class User extends Model 
{
    // 關閉自動寫入時間戳
    protected $autoWriteTimestamp = false;
}

如果是關閉全局的自動時間寫入,則可以使用:

// 關閉全局自動寫入時間字段
'auto_timestamp' => false,
文檔最后更新時間:2018-04-26 10:06:05

文檔
目錄

深色
模式

切換
寬度