時(shí)間戳
| 版本 | 調(diào)整功能 |
|---|---|
| 5.0.10 |
增加autoWriteTimestamp方法動(dòng)態(tài)設(shè)置時(shí)間字段寫(xiě)入 |
| 5.0.6 | 增加時(shí)間字段自動(dòng)格式輸出設(shè)置 |
| 5.0.5 | 時(shí)間戳字段支持自動(dòng)格式化輸出 |
autoWriteTimestamp屬性支持設(shè)置為時(shí)間日期類名 |
系統(tǒng)支持自動(dòng)寫(xiě)入創(chuàng)建和更新的時(shí)間戳字段,有兩種方式配置支持。
第一種方式,是在數(shù)據(jù)庫(kù)配置文件中添加全局設(shè)置:
// 開(kāi)啟自動(dòng)寫(xiě)入時(shí)間戳字段
'auto_timestamp' => true,
第二種是直接在單獨(dú)的模型類里面設(shè)置:
protected $autoWriteTimestamp = true;
如果這兩個(gè)地方設(shè)置為true,默認(rèn)識(shí)別為整型int類型,如果你的時(shí)間字段不是int類型的話,例如使用datetime類型的話,可以這樣設(shè)置:
// 開(kāi)啟自動(dòng)寫(xiě)入時(shí)間戳字段
'auto_timestamp' => 'datetime',
或者
protected $autoWriteTimestamp = 'datetime';
字段名默認(rèn)創(chuàng)建時(shí)間字段為create_time,更新時(shí)間字段為update_time,支持的字段類型包括timestamp/datetime/int。
寫(xiě)入數(shù)據(jù)的時(shí)候,系統(tǒng)會(huì)自動(dòng)寫(xiě)入create_time和update_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+版本開(kāi)始,時(shí)間字段輸出的時(shí)候會(huì)自動(dòng)進(jìn)行格式轉(zhuǎn)換,如果不希望自動(dòng)格式化輸出,可以把數(shù)據(jù)庫(kù)配置文件的datetime_format參數(shù)值改為false(V5.0.6+版本支持,之前版本可以使用類型轉(zhuǎn)換方式關(guān)閉自動(dòng)格式化)
如果你的數(shù)據(jù)表字段不是默認(rèn)值的話,可以按照下面的方式定義:
class User extends Model
{
// 定義時(shí)間戳字段名
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字段而不需要自動(dòng)寫(xiě)入update_time,則可以單獨(dú)設(shè)置關(guān)閉某個(gè)字段,例如:
class User extends Model
{
// 關(guān)閉自動(dòng)寫(xiě)入update_time字段
protected $updateTime = false;
}
如果不需要任何自動(dòng)寫(xiě)入的時(shí)間戳字段的話,可以關(guān)閉時(shí)間戳自動(dòng)寫(xiě)入功能,設(shè)置如下:
class User extends Model
{
// 關(guān)閉自動(dòng)寫(xiě)入時(shí)間戳
protected $autoWriteTimestamp = false;
}
如果是關(guān)閉全局的自動(dòng)時(shí)間寫(xiě)入,則可以使用:
// 關(guān)閉全局自動(dòng)寫(xiě)入時(shí)間字段
'auto_timestamp' => false,
