datetime时间选择器 / DateTimePicker
如果对于字段存为int型,model中添加fules规则 :
PHP Code复制内容到剪贴板
- ['apply_time', 'default', 'value' => function(){
- return date('Y-m-d H:i:s', time());
- }],
- ['apply_time', 'filter', 'filter' => function($value) {
- return is_numeric($value) ? $value : strtotime($value);
- }, 'skipOnEmpty' => true],
一、只选择 年-月-日
PHP Code复制内容到剪贴板
- <?= $form->field($model, 'apply_time')->widget(
- \kartik\datetime\DateTimePicker::className(),
- [
- 'type' => 1,
- 'options' => [
- // 如果该项没有值,显示默认值,如果有值,时间格式化为Y-M-D
- 'value' => !emptyempty($model->apply_time) ? date('Y-m-d', $model->apply_time) : date("Y-m-d"),
- ],
- 'pluginOptions' => [
- 'autoclose' => true, // 选择日期后自动关闭
- "format" => "yyyy-mm-dd", // 显示日期格式
- "todayBtn" => true, // 是否显示今日按钮
- "minView" => "month", //选择日期后,不会再跳转去选择时分秒
- ]
- ]
- ) ?>
输出:
PHP Code复制内容到剪贴板
- <?php
- echo \kartik\datetime\DateTimePicker::widget([
- 'name' => Html::getInputName($model, 'plan_name'),
- 'value' => !emptyempty($model->plan_time) ? date('Y-m-d', $model->plan_time) : date("Y-m-d"),
- 'type' => 1,
- 'pluginOptions' => [
- 'autoclose' => true, // 选择日期后自动关闭
- "format" => "yyyy-mm-dd", // 显示日期格式
- "todayBtn" => true, // 是否显示今日按钮
- "minView" => "month", //选择日期后,不会再跳转去选择时分秒
- ]
- ]);
- ?>
二、只选择年 - 月
PHP Code复制内容到剪贴板
- <?= $form->field($model, 'dte')->widget(
- DateTimePicker::class,
- [
- 'type' => 1,
- 'pluginOptions' => [
- 'autoclose' => true,
- "format" => "yyyy-mm",
- "todayBtn" => true,
- "startView" => 3, // 重点
- "minView" => 3, // 重点
- ]
- ]
- )->label("月份:") ?>
小部件不选择秒;
PHP Code复制内容到剪贴板
- public function behaviors()
- {
- return [
- [
- 'class' => DynamicFormBehavior::className(),
- 'formAttributes' => [
- 'start_at' => [
- 'type' => 'datetime',
- 'options' => [
- 'autocomplete' => 'off', //不记忆
- "readonly" => "readonly", //禁止输入
- 'widgetOptions' => [
- 'type' => 1,
- 'pluginOptions' => [
- 'format' => "php:Y-m-d H:i",
- 'autoclose' => true, // 选择日期后自动关闭
- "todayBtn" => true, // 是否显示今日按钮
- ]
- ]
- ],
- ],