日期时间

简介

日期时间组件用于在表格列中展示完整的日期和时间信息,是日期组件的扩展版本。

用法示例

基础用法

use plugin\xbCode\builder\Builder;

// 创建表格
Builder::crud(function($builder) {
  // 添加日期时间列
  $builder->addColumnDateTime('created_at', '创建时间');
});

自定义配置

Builder::crud(function($builder) {
  // 使用回调函数自定义配置
  $builder->addColumnDateTime('login_time', '登录时间', function($component) {
    $component->displayFormat('YYYY-MM-DD HH:mm:ss');
    $component->valueFormat('X'); // 时间戳格式
  });
  
  // 相对时间显示
  $builder->addColumnDateTime('last_active', '最后活跃', function($component) {
    $component->fromNow(true); // 显示为"3分钟前"、"2小时前"等
    $component->updateFrequency(60); // 60秒更新一次
  });
  
  // 使用数组方式配置
  $builder->addColumnDateTime('datetime', '时间', [
    'displayFormat' => 'YYYY年MM月DD日 HH时mm分',
    'className' => 'text-primary'
  ]);
});

组件参数

参数名类型默认值说明
namestring必填字段名称,对应数据库字段
labelstring必填列标题,显示在表格头部
optioncallable|array[]配置选项,可以是回调函数或数组

日期时间组件属性

属性名类型默认值说明
typestringdatetime类型,自动设置为 'datetime'
placeholderstring-占位符
valueFormatstring-数据格式,默认为时间戳
updateFrequencystring-更新频率,默认为1分钟
classNamestring-外层 CSS 类名
displayFormatstring-展示格式(如:YYYY-MM-DD HH:mm:ss)
fromNowboolfalse是否显示相对时间描述(如:11小时前、3天前)
displayTimeZonestring-设置日期展示时区

使用场景

  • 精确的创建时间展示
  • 操作日志时间记录
  • 登录时间显示
  • 订单生成时间
  • 审核时间记录

注意事项

  1. 组件会自动设置 type 为 'datetime'
  2. 默认展示完整的日期和时间信息
  3. 当 fromNow 为 true 时,displayFormat 不生效
  4. 相对时间描述会根据 updateFrequency 自动刷新
  5. 建议使用时间戳格式存储数据,便于跨时区处理