Class kartik\datecontrol\DateControl

Inheritancekartik\datecontrol\DateControl » kartik\base\InputWidget » yii\widgets\InputWidget » yii\base\Widget » yii\base\Component » yii\base\BaseObject
Implementskartik\base\BootstrapInterface, yii\base\Configurable, yii\base\ViewContextInterface
Uses Traitskartik\base\BootstrapTrait, kartik\base\TranslationTrait, kartik\base\WidgetTrait

DateControl widget enables you to manage formatting of date/time separately for display (View) and saving to database (Model).

For example,

use kartik\datecontrol\DateControl;
// usage of rendering date control widget as an active field within Yii active form
echo $form->field($model, 'datetime_2')->widget(DateControl::class, [
    'displayFormat' => 'php:d-M-Y H:i:s',
    'type' => DateControl::FORMAT_DATETIME
]);

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$ajaxConversion boolean Whether to use ajaxConversion to process date format for the widget. kartik\datecontrol\DateControl
$asyncRequest boolean Whether to fire an asynchronous ajax request. kartik\datecontrol\DateControl
$attribute string|null The model attribute that this widget is associated with. yii\widgets\InputWidget
$autoIdPrefix string The prefix to the automatically generated widget IDs. yii\base\Widget
$autoWidget boolean Whether to automatically use \kartik\widgets based on $type. kartik\datecontrol\DateControl
$baseSourcePath string|false Get parsed base source path based on $sourcePath setting. If $sourcePath is not set, it will return the current working directory of this widget class. kartik\base\WidgetTrait
$behaviors yii\base\Behavior[] List of behaviors attached to this component. yii\base\Component
$bsColCssPrefixes array The bootstrap grid column css prefixes mapping, the key is the bootstrap versions, and the value is an array containing the sizes and their corresponding grid column css prefixes. kartik\base\BootstrapTrait
$bsCssMap array CSS conversion mappings across bootstrap library versions. kartik\base\BootstrapTrait
$bsExtBasename integer The yii2 bootstrap extension base name (readonly property available via getter method getBsExtBasename()) kartik\base\BootstrapTrait
$bsVer integer Bootstrap version number currently set (readonly property available via getter method getBsVer()) kartik\base\BootstrapTrait
$bsVersion integer|string The bootstrap library version that you wish to use for this specific extension / widget. kartik\base\BootstrapTrait
$convertFormat boolean Whether the widget should automatically format the date from the PHP DateTime format to the javascript/jquery plugin format. kartik\base\InputWidget
$counter integer A counter used to generate $id for widgets. yii\base\Widget
$data array The data (for list inputs) kartik\base\InputWidget
$defaultBtnCss string Default bootstrap button CSS (readonly property available via getter method getDefaultBtnCss()) kartik\base\BootstrapTrait
$defaultIconPrefix string Default icon prefix (readonly property available via getter method getDefaultIconPrefix()) kartik\base\BootstrapTrait
$defaultOptions array Default HTML attributes or other settings for widgets. kartik\base\WidgetTrait
$defaultPluginOptions array Default plugin options for the widget kartik\base\WidgetTrait
$disabled boolean Whether input is to be disabled kartik\base\InputWidget
$displayFormat string The format string for displaying the date. kartik\datecontrol\DateControl
$displayTimezone string The timezone for the displayed date. kartik\datecontrol\DateControl
$dropdownClass string Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method getDropdownClass()) kartik\base\BootstrapTrait
$field yii\widgets\ActiveField Active input field, which triggers this widget rendering. yii\widgets\InputWidget
$hashVarLoadPosition integer The position where the client JS hash variables for the input widget will be loaded. kartik\base\WidgetTrait
$i18n array The the internalization configuration for this widget. kartik\base\TranslationTrait
$id string|null ID of the widget. Note that the type of this property differs in getter and setter. See getId() and setId() for details. yii\base\Widget
$language string The language configuration (e.g. 'fr-FR', 'zh-CN'). kartik\base\InputWidget
$model yii\base\Model|null The data model that this widget is associated with. yii\widgets\InputWidget
$moduleId string The module identifier if this widget is part of a module. kartik\base\WidgetTrait
$name string|null The input name. yii\widgets\InputWidget
$options array The HTML attributes for the display input. kartik\datecontrol\DateControl
$pjaxContainerId string The identifier for the PJAX widget container if the widget is to be rendered inside a PJAX container. kartik\base\WidgetTrait
$pjaxDuplicationFix boolean Prevent duplication of pjax containers when browser back & forward buttons are pressed. kartik\base\WidgetTrait
$pluginDestroyJs string The javascript that will be used to destroy the jQuery plugin kartik\base\WidgetTrait
$pluginEvents array Widget JQuery events. kartik\base\WidgetTrait
$pluginLoading boolean Show loading indicator while plugin loads kartik\base\InputWidget
$pluginName string The plugin name kartik\datecontrol\DateControl
$pluginOptions array Widget plugin options. kartik\base\WidgetTrait
$readonly boolean Whether input is to be readonly kartik\base\InputWidget
$saveFormat string The default format string to be save the date as. kartik\datecontrol\DateControl
$saveOptions array The HTML attributes for the base model input that will be saved typically to database. kartik\datecontrol\DateControl
$saveTimezone string The timezone for the saved date. kartik\datecontrol\DateControl
$sourcePath string Directory path to the original widget source. kartik\base\WidgetTrait
$stack yii\base\Widget[] The widgets that are currently being rendered (not ended). yii\base\Widget
$type string Data type to use for the displayed date control. kartik\datecontrol\DateControl
$value string The input value. yii\widgets\InputWidget
$view yii\web\View The view object that can be used to render views or view files. Note that the type of this property differs in getter and setter. See getView() and setView() for details. yii\base\Widget
$viewPath string The directory containing the view files for this widget. yii\base\Widget
$widgetClass string Any custom widget class to use. kartik\datecontrol\DateControl
$widgetOptions array The configuration options for the widget which will be parsed only in one of the following cases: - when $autoWidget is true and this corresponds to widget settings for DatePicker, TimePicker, or DateTimePicker based on the $type setting, OR - when $autoWidget is false and $widgetClass is set and this allows to set the configuration options for the particular widget class. kartik\datecontrol\DateControl

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$_bsVer integer Current bootstrap version number kartik\base\BootstrapTrait
$_dataVar string The HTML5 data variable name that will be used to store the Json encoded pluginOptions within the element on which the jQuery plugin will be initialized. kartik\base\WidgetTrait
$_defaultBtnCss string Default bootstrap button CSS kartik\base\BootstrapTrait
$_defaultIconPrefix string Default icon CSS prefix kartik\base\BootstrapTrait
$_encOptions string The JSON encoded plugin options. kartik\base\WidgetTrait
$_hashVar string The generated hashed variable name that will store the JSON encoded pluginOptions in yii\web\View::POS_HEAD. kartik\base\WidgetTrait
$_isBs4 boolean Flag to detect whether bootstrap 4. kartik\base\BootstrapTrait
$_lang string The two or three letter lowercase code for the language according to ISO-639. kartik\base\InputWidget
$_langFile string The language js file. kartik\base\InputWidget
$_loadIndicator string The indicator to be displayed while plugin is loading. kartik\base\InputWidget
$_module kartik\datecontrol\Module The datecontrol module instance. kartik\datecontrol\DateControl
$_msgCat string Translation message file category name for i18n. kartik\base\TranslationTrait
$_widgetSettings array The parsed widget class settings for each type (defaults from the module setting if not set). kartik\datecontrol\DateControl

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
addCssClass() Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type. kartik\base\BootstrapTrait
afterRun() This method is invoked right after a widget is executed. yii\base\Widget
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
beforeRun() This method is invoked right before the widget is executed. yii\base\Widget
begin() Begins a widget. yii\base\Widget
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
end() Ends a widget. yii\base\Widget
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
getBSClass() Gets the respective Bootstrap class based on currently configured bootstrap version. kartik\base\BootstrapTrait
getBaseSourcePath() Get parsed base source path based on $sourcePath setting. If $sourcePath is not set, it will return the current working directory of this widget class. kartik\base\WidgetTrait
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getBsVer() Gets the current set bootstrap version number. kartik\base\BootstrapTrait
getCssClass() Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type. kartik\base\BootstrapTrait
getDefaultBtnCss() Gets the default button CSS kartik\base\BootstrapTrait
getDefaultIconPrefix() Gets the default icon css prefix kartik\base\BootstrapTrait
getDisplayValue() Gets the formatted display date value. kartik\datecontrol\DateControl
getDropdownClass() Gets the respective bootstrap dropdown class name based on currently configured bootstrap version. kartik\base\BootstrapTrait
getId() Returns the ID of the widget. yii\base\Widget
getTimestamp() Parses and normalizes a date source and converts it to a DateTime object by parsing it based on specified format. kartik\datecontrol\DateControl
getView() kartik\base\WidgetTrait
getViewPath() Returns the directory containing the view files for this widget. yii\base\Widget
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the widget. kartik\datecontrol\DateControl
initI18N() Yii i18n messages configuration for generating translations kartik\base\TranslationTrait
isBs() Validate Bootstrap version kartik\base\BootstrapTrait
isBs4() Validate if Bootstrap 4.x version. kartik\base\BootstrapTrait
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
registerWidgetJs() Registers a JS code block for the widget. kartik\base\WidgetTrait
removeCssClass() Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type. kartik\base\BootstrapTrait
render() Renders a view. yii\base\Widget
renderFile() Renders a view file. yii\base\Widget
run() Executes the widget. kartik\datecontrol\DateControl
setId() Sets the ID of the widget. yii\base\Widget
setView() Sets the view object to be used by this widget. yii\base\Widget
trigger() Triggers an event. yii\base\Component
widget() Creates a widget instance and runs it. yii\base\Widget

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
addAsset() Adds an asset to the view. kartik\base\WidgetTrait
checkFormatKey() Checks if the format string contains the relevant date format pattern based on the passed key. kartik\datecontrol\DateControl
configureBsVersion() Configures the bootstrap version settings kartik\base\BootstrapTrait
convertDateFormat() Automatically convert the date format from PHP DateTime to Javascript DateTime format kartik\base\InputWidget
fixPjaxDuplication() Fix for weird PJAX container duplication behavior on pressing browser back and forward buttons. kartik\base\WidgetTrait
getBsExtBasename() The yii2-bootstrap extension base name. kartik\base\BootstrapTrait
getDisplayInput() Generates the display input. kartik\datecontrol\DateControl
getInput() Generates an input. kartik\base\InputWidget
getLocaleFile() Fetches the locale settings file. kartik\datecontrol\DateControl
getPluginScript() Returns the plugin registration script. kartik\base\WidgetTrait
getSaveInput() Generates the save input. kartik\datecontrol\DateControl
hasModel() yii\widgets\InputWidget
hashPluginOptions() Generates a hashed variable to store the pluginOptions. kartik\base\WidgetTrait
initBsVersion() Initializes bootstrap versions for the widgets and asset bundles. kartik\base\BootstrapTrait
initConfig() Initializes widget based on module settings. kartik\datecontrol\DateControl
initDestroyJs() Generates the pluginDestroyJs script if it is not set. kartik\base\WidgetTrait
initDisability() Validates and sets disabled or readonly inputs. kartik\base\InputWidget
initInputWidget() Initializes the input widget. kartik\base\InputWidget
initLanguage() Initialize the plugin language. kartik\base\InputWidget
isSameVersion() Compares two versions and checks if they are of the same major BS version. kartik\base\BootstrapTrait
isWidget() Whether a widget is used to render the display. kartik\datecontrol\DateControl
mergeDefaultOptions() Merge default options kartik\base\WidgetTrait
parseDateFormat() Parses and sets plugin date format based on attribute type using yii\helpers\FormatConverter. Currently this method is used only within the kartik\date\DatePicker and \kartik\datetime\DateTimePicker\ widgets. kartik\base\InputWidget
parseLocale() Parses locale data and returns an english format. kartik\datecontrol\DateControl
parseVer() Parses and returns the major BS version kartik\base\BootstrapTrait
registerAssets() Registers assets for the kartik\datecontrol\DateControl widget. kartik\datecontrol\DateControl
registerPlugin() Registers a specific plugin and the related events kartik\base\WidgetTrait
registerPluginOptions() Registers plugin options by storing within a uniquely generated javascript variable. kartik\base\WidgetTrait
renderInputHtml() Render a HTML input tag. yii\widgets\InputWidget
setDataVar() Sets a HTML5 data variable. kartik\base\WidgetTrait
setLanguage() Sets the language JS file if it exists. kartik\base\InputWidget
setLocale() Sets the locale using the locales configuration settings. kartik\datecontrol\DateControl
translate() Translate a date pattern based on type. kartik\datecontrol\DateControl
translateDate() Translate the date string. kartik\datecontrol\DateControl

Events

Hide inherited events

EventTypeDescriptionDefined By
EVENT_AFTER_RUN yii\base\WidgetEvent An event raised right after executing a widget. (available since version 2.0.11) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent An event raised right before executing a widget. (available since version 2.0.11) yii\base\Widget
EVENT_INIT yii\base\Event An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) yii\base\Widget

Constants

Hide inherited constants

ConstantValueDescriptionDefined By
FORMAT_DATE 'date' kartik\datecontrol\DateControl
FORMAT_DATETIME 'datetime' kartik\datecontrol\DateControl
FORMAT_TIME 'time' kartik\datecontrol\DateControl
LOAD_PROGRESS '
 
'
kartik\base\InputWidget

Property Details

$_module protected property

The datecontrol module instance.

$_widgetSettings protected property

The parsed widget class settings for each type (defaults from the module setting if not set).

protected array $_widgetSettings = []
$ajaxConversion public property

Whether to use ajaxConversion to process date format for the widget.

public boolean $ajaxConversion null
$asyncRequest public property

Whether to fire an asynchronous ajax request. Defaults to true. You can set this to false for cases, where you need this to be fired synchronously. For example when using this widget as a filter in kartik\grid\GridView.

public boolean $asyncRequest true
$autoWidget public property

Whether to automatically use \kartik\widgets based on $type. Will use these widgets:

If this property is not set, this will default to true.

public boolean $autoWidget null
$displayFormat public property

The format string for displaying the date. If not set, will automatically use the settings from the kartik\datecontrol\Module based on the $type property.

public string $displayFormat null
$displayTimezone public property

The timezone for the displayed date. If not set, no timezone setting will be applied for formatting.

See also http://php.net/manual/en/timezones.php.

public string $displayTimezone null
$options public property

The HTML attributes for the display input. This property is applicable and parsed only if $autoWidget is false and $widgetClass is empty or not set. For a widget, the $widgetOptions must be used to configure the widget settings.

public array $options = []
$pluginName public property

The plugin name

public string $pluginName 'datecontrol'
$saveFormat public property

The default format string to be save the date as. If not set, will automatically use the settings from the kartik\datecontrol\Module.

public string $saveFormat null
$saveOptions public property

The HTML attributes for the base model input that will be saved typically to database. The following special options are recognized:

  • type: string, whether to generate a 'hidden' or 'text' input. Defaults to 'hidden'.
  • label: string, any label to be placed before the input. Will be only displayed if 'type' is 'text'.
public array $saveOptions = []
$saveTimezone public property

The timezone for the saved date. If not set, no timezone setting will be applied for formatting.

See also http://php.net/manual/en/timezones.php.

public string $saveTimezone null
$type public property

Data type to use for the displayed date control. One of the FORMAT constants.

public string $type self::FORMAT_DATE
$widgetClass public property

Any custom widget class to use. Will only be used if $autoWidget is set to false.

public string $widgetClass null
$widgetOptions public property

The configuration options for the widget which will be parsed only in one of the following cases:

  • when $autoWidget is true and this corresponds to widget settings for DatePicker, TimePicker, or DateTimePicker based on the $type setting, OR
  • when $autoWidget is false and $widgetClass is set and this allows to set the configuration options for the particular widget class.
public array $widgetOptions = []

Method Details

checkFormatKey() protected static method

Checks if the format string contains the relevant date format pattern based on the passed key.

protected static boolean checkFormatKey ( $format, $key )
$format string

The date format string

$key string

The key to check

getDisplayInput() protected method

Generates the display input.

protected string getDisplayInput ( )
throws Exception
getDisplayValue() public method

Gets the formatted display date value.

public string getDisplayValue ( $data )
$data string

The input date data.

getLocaleFile() protected static method

Fetches the locale settings file.

protected static string getLocaleFile ( $lang )
$lang string

The locale/language ISO code.

return string

The locale file name.

getSaveInput() protected method

Generates the save input.

protected string getSaveInput ( )
getTimestamp() public static method

Parses and normalizes a date source and converts it to a DateTime object by parsing it based on specified format.

public static DateTime getTimestamp ( $source, $format, $timezone null, $settings = [] )
$source string

The date source pattern.

$format string

The date format.

$timezone string

The date timezone.

$settings array|string

The locale/language date settings.

init() public method

Initializes the widget.

If you override this method, make sure you call the parent implementation first.

public void init ( )
throws yii\base\InvalidConfigException
throws ReflectionException
initConfig() protected method

Initializes widget based on module settings.

protected void initConfig ( )
throws yii\base\InvalidConfigException
isWidget() protected method

Whether a widget is used to render the display.

protected boolean isWidget ( )
parseLocale() protected static method

Parses locale data and returns an english format.

protected static string parseLocale ( $source, $format, $settings = [] )
$source string

The date source pattern.

$format string

The date format.

$settings array|string

The locale/language date settings.

return string

The converted date source to english.

registerAssets() protected method

Registers assets for the kartik\datecontrol\DateControl widget.

protected void registerAssets ( )
run() public method

Executes the widget.

public string|void run ( )
return string|void

The rendering result may be directly "echoed" or returned as a string

setLocale() protected method

Sets the locale using the locales configuration settings.

protected void setLocale ( )
translate() protected method

Translate a date pattern based on type.

protected string translate ( $string, $type )
$string string

Input date string.

$type string

The type of date pattern as set in $_enSettings.

return string

The translated string.

translateDate() protected method

Translate the date string.

protected string translateDate ( $data, $format )
$data string

The input date data.

$format string

The input date format.

return string

The translated date.