Skip to content

trntv/yii2-datetime-widget

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Yii2 Date/Time Picker Widget

Date/Time Picker widget for Yii2 framework Based on Eonasdan's Bootstrap 3 Date/Time Picker DateTimePicker

Demo

Since this is a part of yii2-starter-kit it's demo can be found in starter kit demo here.

Login: webmaster
Password: webmaster

Before you start

Make sure you have fxp/composer-asset-plugin installed:

composer global require fxp/composer-asset-plugin

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require trntv/yii2-datetime-widget

or add

"trntv/yii2-datetime-widget": "*"

to the require section of your composer.json file.

Usage

Once the extension is installed, simply use it in your code by :

<?php echo $form->field($model, 'attribute')->widget(
        'trntv\yii\datetime\DateTimeWidget',
        [ ... options ... ]
    ); 
?>

Options

phpDatetimeFormat - PHP ICU datetime format (Default: dd.MM.yyyy, HH:mm)

momentDatetimeFormat - Moment JS datetime format (Default: DD.MM.YYYY, HH:mm)

showAddon - show or hide input-addon (Default: true)

addonContent - addon content

phpMomentMapping - formats map (Default: true)

containerOptions - widget container optionsgit

clientOptions - full list of available options

*** Note: to enable widget show on textbox focus when used in a button group, use allowInputToggle option:

...
'clientOptions' => [
    'allowInputToggle' => true
]
...

Examples

ActiveField input widget:

<?php echo $form->field($model, 'datetime')->widget(
    'trntv\yii\datetime\DateTimeWidget',
    [
        'phpDatetimeFormat' => 'yyyy-MM-dd\'T\'HH:mm:ssZZZZZ',
        'clientOptions' => [
            'minDate' => new \yii\web\JsExpression('new Date("2015-01-01")'),
            'allowInputToggle' => false,
            'sideBySide' => true,
            'locale' => 'zh-cn',
            'widgetPositioning' => [
               'horizontal' => 'auto',
               'vertical' => 'auto'
            ]
        ]
    ]
]); ?>

Standalone widget for date only:

<?php echo trntv\yii\datetime\DateTimeWidget::widget([
    'phpDatetimeFormat' => 'yyyy-MM-dd',
]) ; ?>

Add custom JS events:

<?php echo trntv\yii\datetime\DateTimeWidget::widget([
    'clientEvents' => [
        'dp.change' => 'function(e){
            console.log('dp.change');
        }',
    ],
]) ; ?>