Backpack日期范围选择器不支持24小时制,如何启用该模式?
Backpack日期范围选择器启用24小时制解决方案
以下是几种可行的实现方式:
1. 字段定义时配置JS选项
在CRUD控制器的字段配置中,通过js_options直接传入24小时制相关参数,覆盖组件默认设置:
$this->crud->addField([ 'name' => 'date_range', 'type' => 'date_range', 'label' => '日期范围', 'locale' => 'zh_CN', // 选择支持24小时制的区域设置 'js_options' => [ 'format' => 'YYYY-MM-DD HH:mm', // 24小时格式的日期时间模板 'use24hours' => true, // 强制启用24小时制 'stepping' => 15, // 可选:设置分钟选择步长 ], ]);
2. 针对Tempus Dominus底层组件的配置
如果你的Backpack版本使用Tempus Dominus作为日期选择器底层,需调整display参数明确指定24小时格式:
'js_options' => [ 'format' => 'YYYY-MM-DD HH:mm', 'display' => [ 'components' => [ 'hours' => 24, 'minutes' => true, 'seconds' => false ] ] ]
3. 自定义JS初始化逻辑
如果上述配置不生效,可通过自定义JS覆盖组件的初始化设置:
$(document).ready(function() { $('.daterangepicker').each(function() { const picker = $(this).data('daterangepicker'); if (picker) { picker.updateOptions({ use24hours: true, format: 'YYYY-MM-DD HH:mm' }); } }); });
注意:确保你指定的locale对应的语言包本身支持24小时制,部分区域设置默认会使用12小时制,需搭配正确的格式模板生效。
内容的提问来源于stack exchange,提问作者Miquel Ángel
相关产品推荐
相关产品推荐

