kartik-v / yii2-date-range
基于 bootstrap-daterangepicker 插件的先进 Yii 2 日期范围选择器输入。
v1.7.3
2021-09-01 12:16 UTC
Requires
- kartik-v/yii2-krajee-base: >=3.0.0
This package is auto-updated.
Last update: 2024-08-30 01:07:03 UTC
README
yii2-date-range
基于 dangrossman/bootstrap-daterangepicker 插件 的先进日期范围选择器输入,适用于 Yii Framework 2。该日期范围选择器小部件针对 Bootstrap 3.x 和 4.x 版本进行了样式设计,并创建了一个下拉菜单,用户可以从中选择日期范围。如果插件没有指定任何选项,它将显示两个日历来选择起始和结束日期。您可以提供一个用户可以选择的日期范围列表,而不是从日历中选择日期。如果将其附加到文本输入,则选定的日期将被插入到文本框中。否则,您可以提供一个自定义回调函数来接收选择。
为该小部件添加的额外增强(由 Krajee 提供)
- 允许与 Bootstrap 输入组附加组件一起使用,并将选择器的位置设置为指向输入组附加组件图标。
- 使用 yii i18n 消息文件增强了翻译功能。
- 自动将格式从 PHP 日期/时间格式转换为 Moment.js 日期/时间格式。
- 自动触发基本字段的更改,以强制执行 Yii ActiveField 验证。
- 可以将小部件设置为在容器(和隐藏输入)中显示预设的日期选项下拉菜单。
- 使用模板根据您的需求样式化容器选项。
- 根据禁用/只读选项自动禁用日期范围。
演示
您可以在 这里 查看扩展使用说明的详细文档。
发布更改
有关各种发布的详细信息,请参阅 变更日志。
安装
安装此扩展的首选方式是通过 composer。
注意:请检查此扩展的 composer.json 以了解其要求和依赖项。阅读此 网络提示 / wiki 以了解如何为您的应用程序的 composer.json 设置
minimum-stability
设置。
运行以下命令之一:
$ php composer.phar require kartik-v/yii2-date-range "dev-master"
或
"kartik-v/yii2-date-range": "dev-master"
将以下内容添加到您的 composer.json
文件的 require
部分中。
用法
DateRangePicker
use kartik\daterange\DateRangePicker; echo DateRangePicker::widget([ 'model'=>$model, 'attribute'=>'datetime_range', 'convertFormat'=>true, 'pluginOptions'=>[ 'timePicker'=>true, 'timePickerIncrement'=>30, 'locale'=>[ 'format'=>'Y-m-d h:i A' ] ] ]);
或使用模型上的独立 min/max 属性
use kartik\daterange\DateRangePicker; echo DateRangePicker::widget([ 'model'=>$model, 'attribute'=>'datetime_range', 'convertFormat'=>true, 'startAttribute'=>'datetime_min', 'endAttribute'=>'datetime_max', 'pluginOptions'=>[ 'timePicker'=>true, 'timePickerIncrement'=>30, 'locale'=>[ 'format'=>'Y-m-d h:i A' ] ] ]);
DateRangeBehavior
use kartik\daterange\DateRangeBehavior; class UserSearch extends User { public $createTimeRange; public $createTimeStart; public $createTimeEnd; public function behaviors() { return [ [ 'class' => DateRangeBehavior::className(), 'attribute' => 'createTimeRange', 'dateStartAttribute' => 'createTimeStart', 'dateEndAttribute' => 'createTimeEnd', ] ]; } public function rules() { return [ // ... [['createTimeRange'], 'match', 'pattern' => '/^.+\s\-\s.+$/'], ]; } public function search($params) { $query = User::find(); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $this->load($params); if (!$this->validate()) { $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['>=', 'createdAt', $this->createTimeStart]) ->andFilterWhere(['<', 'createdAt', $this->createTimeEnd]); return $dataProvider; } }
许可证
yii2-date-range 根据 BSD-3-Clause 许可证发布。有关详细信息,请参阅捆绑的 LICENSE.md
文件。