elfuvo/yii2-date-compare
Composer 安装命令:
composer require elfuvo/yii2-date-compare
包简介
Compare dates with the time zone
README 文档
README
Requirements
- PHP >=7.4
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist elfuvo/yii2-date-compare "~0.1.0"
or add
"elfuvo/yii2-date-compare": "~0.1.0"
to the "require" section of your composer.json file.
Configure
In application configuration file set defaultTimeZone (DB time zone) and timeZone (application time zone) for
formatter
[
'components' => [
'formatter' => [
'class' => \yii\i18n\Formatter::class,
'defaultTimeZone' => 'UTC', // database timezone
'timeZone' => 'Europe/Moscow', // application time zone
],
],
];
Usage
Add DateCompareActiveQueryTrait to your ActiveQuery class. Then use where functions on selection.
Custom::find()->andCompareDate('>', Custom::tableName().'.[[createdAt]]', $model->dateFrom); Custom::find()->orCompareTime('<=', Custom::tableName().'.[[createdAt]]', $model->dateTimeFrom); Custom::find()->orWhere([ 'AND', ['>=', Custom::tableName().'.[[createdAt]]', DateConvertHelper::toDefaultTime($model->dateTimeFrom)], ['<=', Custom::tableName().'.[[createdAt]]', DateConvertHelper::toDefaultTime($model->dateTimeTo)], ]);
In filter view you must use yii formatter:
$form->field($model, 'dateFrom')->textInput(['value' => Yii::$app->formatter->asDate($model->dateFrom, 'dd.MM.yyyy')]);
You can use DateValueWidget for date formatting:
$form->field($model, 'dateFrom')->widget([ 'class'=> DateValueWidget::class, 'format' =>'dd.MM.yyyy HH:mm' ]);
You can define default date formatting for DateValueWidget in container definitions:
[
'containers' => [
'definitions' =>[
\elfuvo\dateCompare\widgets\DateValueWidget::class =>[
'class' => \elfuvo\dateCompare\widgets\DateValueWidget::class,
'format' => 'dd/MM/yyyy',
],
],
]
];
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-02-14