如何在列中添加 Yii2 日期选择器,可以通过在 GridView 中按日期来选择这个日期
How to add Yii2 datepicker that in a column it was possible to choose by pressing date this date in GridView
其实heading也有问题。大致遇到过如何在柱子上进行过滤,但没有具体日期的选择。
安装。获取 Composer 包:
php composer.phar require --prefer-dist yiisoft/yii2-jui
可见:
echo \yii\jui\DatePicker::widget([
'model' => $model,
'attribute' => 'date',
]);
在模型中(验证 unix 时间戳)- 数据库中的日期是 int 或 ..
['date', 'default', 'value' => null],
['date', 'date', 'timestampAttribute' => 'date'],
或:
public function beforeValidate() {
if ($this->date !== null) {
$this->date= strtotime($this->date);
}
return parent::beforeValidate();
}
在过滤器 Gridview(搜索)中:
[
'attribute' => 'date',
'filter' => \yii\jui\DatePicker::widget([
'model' => $searchModel,
'attribute' => 'date',
'dateFormat' => 'php:Y-m-d',
'options' => [
'class' => 'form-control',
'autocomplete' => 'off',
]
]),
],
在模型搜索中:
public $date;
public function rules()
{
return [
[['date'], 'safe'],
['date', 'default', 'value' => null],
];
}
//...
if ($this->date !== null) {
$date = strtotime($this->date);
$query->andFilterWhere(['between', 'date', $date, $date + 3600 * 24]);
}
作为 GridView 中的输入:
[
'label' => 'date',
'value' => function ($model, $key, $index) {
return \yii\jui\DatePicker::widget([
'model' => $model,
'attribute' => 'date',
]);
},
'format' => 'raw'
],
其实heading也有问题。大致遇到过如何在柱子上进行过滤,但没有具体日期的选择。
安装。获取 Composer 包:
php composer.phar require --prefer-dist yiisoft/yii2-jui
可见:
echo \yii\jui\DatePicker::widget([
'model' => $model,
'attribute' => 'date',
]);
在模型中(验证 unix 时间戳)- 数据库中的日期是 int 或 ..
['date', 'default', 'value' => null],
['date', 'date', 'timestampAttribute' => 'date'],
或:
public function beforeValidate() {
if ($this->date !== null) {
$this->date= strtotime($this->date);
}
return parent::beforeValidate();
}
在过滤器 Gridview(搜索)中:
[
'attribute' => 'date',
'filter' => \yii\jui\DatePicker::widget([
'model' => $searchModel,
'attribute' => 'date',
'dateFormat' => 'php:Y-m-d',
'options' => [
'class' => 'form-control',
'autocomplete' => 'off',
]
]),
],
在模型搜索中:
public $date;
public function rules()
{
return [
[['date'], 'safe'],
['date', 'default', 'value' => null],
];
}
//...
if ($this->date !== null) {
$date = strtotime($this->date);
$query->andFilterWhere(['between', 'date', $date, $date + 3600 * 24]);
}
作为 GridView 中的输入:
[
'label' => 'date',
'value' => function ($model, $key, $index) {
return \yii\jui\DatePicker::widget([
'model' => $model,
'attribute' => 'date',
]);
},
'format' => 'raw'
],