讲师中心 微信公众号
AI工具推荐 视频效率加速

Yii2.0.45TimestampBehavior自定义时间戳值教程

浅婷姑娘_5018

浅婷姑娘_5018

发布时间:2026-10-22 14:45:27

|

972人浏览过

|

来源于php中文网

原创

Yii2.0.45中TimestampBehavior需正确配置value属性并匹配字段类型:PHP用time()配INT字段,NOW()配DATETIME,date()配DATETIME/TIMESTAMP;须显式声明attributes事件映射,且rules中排除时间戳字段。

yii2.0.45timestampbehavior自定义时间戳值教程

Yii2.0.45 中的 TimestampBehavior 支持灵活自定义时间戳值,关键在于正确配置 value 属性,并匹配数据库字段类型与生成方式。

明确 value 的三种常用写法

value 决定时间戳怎么算、谁来算。它不是固定字符串,而是一个可调用值(callback)、表达式(Expression)或常量:

  • PHP 生成 UNIX 时间戳:用 function () { return time(); } —— 适合 INT(11) 字段,时区由 PHP 配置控制
  • 数据库生成 DATETIME:用 new \yii\db\Expression('NOW()') —— MySQL 推荐,避免服务器时间偏差;PostgreSQL 请用 CURRENT_TIMESTAMP
  • 自定义格式字符串:如 function () { return date('Y-m-d H:i:s'); } —— 要求字段为 DATETIME 或 TIMESTAMP 类型

字段类型必须和 value 匹配

数据库列定义不匹配会导致插入失败或存入错误值:

Yii Framework 2.0.51
Yii Framework 2.0.51

Yii Framework 2.0.51 官方 Basic 应用模板,适合旧项目兼容、升级验证和开发测试。

下载
  • 若用 time() 或 date() 回调 → 字段应为 INT(如 INT(11) UNSIGNED),不能是 TIMESTAMP(MySQL 的 TIMESTAMP 有自动更新逻辑,易冲突)
  • 若用 NOW() 表达式 → 字段建议为 DATETIME(兼容性好),TIMESTAMP 也可但需注意 MySQL 版本限制(5.6+ 才支持 NOW() 作默认值)
  • 字段上不要设 DEFAULT CURRENT_TIMESTAMP 或 ON UPDATE CURRENT_TIMESTAMP —— 否则行为可能被跳过,造成时间不一致

指定字段名和事件时机

默认只认 created_at 和 updated_at,实际项目中字段名常不同。完整配置示例如下:

public function behaviors()
{
    return [
        [
            'class' => \yii\behaviors\TimestampBehavior::className(),
            'createdAtAttribute' => 'create_time',
            'updatedAtAttribute' => 'update_time',
            'value' => new \yii\db\Expression('NOW()'),
            'attributes' => [
                \yii\db\ActiveRecord::EVENT_BEFORE_INSERT => ['create_time', 'update_time'],
                \yii\db\ActiveRecord::EVENT_BEFORE_UPDATE => ['update_time'],
            ],
        ],
    ];
}

注意:attributes 数组显式声明了哪些事件触发哪些字段,比仅靠 createdAtAttribute 更可控,也避免因字段不存在导致报错。

模型规则里要排除时间戳字段

因为值由行为自动填充,用户不输入、也不应验证:

  • 确保 rules() 方法中不出现 created_at、updated_at 或你自定义的字段名(如 create_time)
  • 如果这些字段出现在 safe 或 required 规则里,会导致验证失败或被覆盖
  • 必要时可在 scenarios() 中移除它们,例如:return array_merge(parent::scenarios(), ['default' => ['id', 'name']]);

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
PHP Yii框架专题
PHP Yii框架专题

本专题专注于PHP主流框架Yii的应用,系统讲解MVC架构、路由机制、数据库操作、表单处理、安全验证与RESTful API 开发等核心内容。通过电商网站、后台管理系统与内容管理平台等实战项目,帮助学员快速掌握Yii框架的开发技巧与实战经验。

3050

2025.09.04

剧云故事大纲与分场规划教程
剧云故事大纲与分场规划教程

本专题讲解剧云梗概与多级大纲功能,覆盖全局、分集、分场结构生成,以及主线冲突、剧情节点和场次顺序调整。

0

2026.10.22

VibeKnow PPT讲解视频教程汇总
VibeKnow PPT讲解视频教程汇总

本专题介绍VibeKnow PPT讲解模式的素材准备、旁白生成、页面节奏、画面呈现与导出设置,适合课程和培训场景。

0

2026.10.22

VibeKnow PDF转视频教程合集
VibeKnow PDF转视频教程合集

本专题围绕VibeKnow的PDF转视频功能,讲解文件准备、内容解析、脚本生成、重点可视化及配音字幕检查方法。

0

2026.10.22

二狗PPT模板与视觉设计
二狗PPT模板与视觉设计

本专题介绍二狗PPT的职场模板、主题风格与页面版式,覆盖模板切换、色彩选择、内容匹配和正式汇报场景下的视觉优化方法。

0

2026.10.22

php漏洞修复方法
php漏洞修复方法

PHP漏洞聚合专题,持续整理PHP最新高危漏洞、CVE安全预警、受影响版本、自查命令及修复方案,覆盖PHP-FPM、Docker、Ubuntu与Linux服务器环境,帮助开发者快速完成漏洞排查、版本升级和安全加固。

0

2026.10.22

二狗PPT入门与基础操作
二狗PPT入门与基础操作

本专题整理二狗PPT从官网进入、输入主题、生成大纲到制作成稿的基础操作,帮助新手掌握AI一键生成职场PPT的完整流程。

0

2026.10.22

讯飞绘文AI配图与绘图模型合集
讯飞绘文AI配图与绘图模型合集

本专题讲解讯飞绘文AI配图与绘图2.0 Pro,覆盖提示词、画面比例、参考图、风格选择及图片优化,帮助用户制作匹配内容的视觉素材。

0

2026.10.22

讯飞绘文AI选题与热点策划合集
讯飞绘文AI选题与热点策划合集

本专题介绍讯飞绘文选题中心与AI选题方法,涵盖热点发现、赛道筛选、选题评估和内容规划,解决创作者找灵感难题。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Yii2中文手册
Yii2中文手册

共0课时 | 0.6万人学习

thinkphp基础介绍和yii2基础介绍
thinkphp基础介绍和yii2基础介绍

共10课时 | 2.6万人学习

Yii2框架基础视频教程
Yii2框架基础视频教程

共22课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn