kartik-v/yii2-date-range

基于 bootstrap-daterangepicker 插件的先进 Yii 2 日期范围选择器输入。

安装次数: 3,266,775

依赖者: 71

建议者: 0

安全: 0

星级: 92

关注者: 13

分支: 81

开放问题: 4

语言:JavaScript

类型:yii2-extension

v1.7.3 2021-09-01 12:16 UTC

README

Krajee Logo
yii2-date-range Donate

Stable Version Untable Version License Total Downloads Monthly Downloads Daily Downloads

基于 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 文件。