在UCore的GridHelper类中新增了columnDateTime方法,用于统一格式化后台列表中的时间显示为"年-月-日 时:分:秒"格式。
public function columnDateTime($field, $label = ''): Grid\Column
Y-m-d H:i:s 格式(如:2023-12-25 14:30:45)-1640995200 → 2022-01-01 08:00:00Carbon::parse('2023-06-15 14:30:45') → 2023-06-15 14:30:45new DateTime('2023-12-25 23:59:59') → 2023-12-25 23:59:59'2023-07-20 10:15:30' → 2023-07-20 10:15:30null 或 '' → -0 → 1970-01-01 08:00:00 (有效时间戳)<?php
namespace App\Module\Example\AdminControllers;
use UCore\DcatAdmin\AdminController;
class ExampleController extends AdminController
{
protected function grid()
{
$grid = $this->gridMake();
$helper = $this->gridHelper($grid);
// 使用新的columnDateTime方法
$helper->columnDateTime('created_at', '创建时间');
$helper->columnDateTime('updated_at', '更新时间');
$helper->columnDateTime('login_time', '登录时间');
return $grid;
}
}
protected function grid()
{
$grid = $this->gridMake();
$helper = $this->gridHelper($grid);
// ID列
$helper->columnId();
// 用户信息
$grid->column('username', '用户名');
$grid->column('email', '邮箱');
// 时间列 - 使用统一格式
$helper->columnDateTime('created_at', '注册时间');
$helper->columnDateTime('last_login_at', '最后登录');
$helper->columnDateTime('email_verified_at', '邮箱验证时间');
// 状态列
$helper->columnStatus('status', '状态');
return $grid;
}
// 在Fund模块中
$helper->columnDateTime('trade_time', '交易时间');
$helper->columnDateTime('created_at', '创建时间');
// 在User模块中
$helper->columnDateTime('register_time', '注册时间');
$helper->columnDateTime('last_active_time', '最后活跃');
// 在Game模块中
$helper->columnDateTime('game_start_time', '游戏开始时间');
$helper->columnDateTime('game_end_time', '游戏结束时间');
// 使用原有的columnCreatedAt和columnUpdatedAt
$helper->columnCreatedAt(); // 格式可能不统一
$helper->columnUpdatedAt(); // 格式可能不统一
// 或者手动处理
$grid->column('created_at', '创建时间')->display(function ($value) {
return $value ? date('Y-m-d H:i:s', strtotime($value)) : '-';
});
// 使用新的columnDateTime方法 - 统一格式,更简洁
$helper->columnDateTime('created_at', '创建时间');
$helper->columnDateTime('updated_at', '更新时间');
-项目中包含了完整的单元测试 tests/Unit/UCore/GridHelperDateTimeTest.php,验证了各种输入类型的正确处理。
运行测试:
vendor/bin/phpunit tests/Unit/UCore/GridHelperDateTimeTest.php