Данный виджет можно считать усовершенствованным вариантом виджета DatePicker от jQuery UI. Главное его преимущество - возможность указывать не только дату, но и время, что в проектах по фреймворку php Yii2 встречается довольно часто. Вот как раз потребовалось переделать форму для администрирования комментариев на моем сайте. При использовании DatePicker от jQuery UI время устанавливалось в 0:00, что не могло меня устраивать.


DateTimePicker

Устанавливать будем с помощью Composer DateTimePicker от kartik-v. Ссылка на Github. Так же был испробован другой похожий плагин c похожим названием, но при обновлении зависимостей, Composer подтягивал около 15 мб. каких-то данных, поэтому пришлось от него отказаться в пользу данного, не такого прожорливого.

Для загрузки введите в командной строке (если Composer установлен глобально):
composer require kartik-v/yii2-widget-datetimepicker "*"
если Composer установлен в корень проекта:
php composer.phar require kartik-v/yii2-widget-datetimepicker "*"
После установки, в папке vendor появится папка kartik-v с файлами виджета.



Как-правило, дату/время приходится вводить в поле формы, а формы в Yii2 обычно создаются с помощью yii\widgets\ActiveForm(). Вот как будет выглядеть подключение DateTimePicker к полю формы:

<?php 
if($model->addtime) {
    $model->addtime = date("d.m.Y H:i", (integer) $model->addtime);
}    
echo $form->field($model, 'addtime')->widget(DateTimePicker::className(),[
    'name' => 'dp_1',
    'type' => DateTimePicker::TYPE_INPUT,
    'options' => ['placeholder' => 'Ввод даты/времени...'],
    'convertFormat' => true,
    'value'=> date("d.m.Y h:i",(integer) $model->addtime),
    'pluginOptions' => [
        'format' => 'dd.MM.yyyy hh:i',
        'autoclose'=>true,
        'weekStart'=>1, //неделя начинается с понедельника
        'startDate' => '01.05.2015 00:00', //самая ранняя возможная дата
        'todayBtn'=>true, //снизу кнопка "сегодня"
    ]
]); ?>

В данном примере в виджет передается из БД определенная дата/время в формате UNIX, где она преобразуется в нужный для вывода на экран и для самого виджета формат: date("d.m.Y H:i", (integer) $model->addtime). Если же дата в поле не передается , то откроется та, что установлена в опции startDate.


DateTimePicker имеет разные варианты отображения, посмотреть и протестировать можно тут:

ДЕМО


Так же имеется много различных опций, описания которых найдете здесь