Class kartik\datecontrol\DateControl
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
Property | Type | Description | Defined 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
Property | Type | Description | Defined 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
Method | Description | Defined 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
Method | Description | Defined 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
Event | Type | Description | Defined 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
Constant | Value | Description | Defined 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
The datecontrol
module instance.
The parsed widget class settings for each type (defaults from the module setting if not set).
Whether to use ajaxConversion to process date format for the widget.
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.
Whether to automatically use \kartik\widgets based on $type
. Will use these widgets:
- kartik\date\DatePicker when $type is set to FORMAT_DATE
- kartik\time\TimePicker when $type is set to FORMAT_TIME
- kartik\datetime\DateTimePicker when $type is set to FORMAT_DATETIME
If this property is not set, this will default to true.
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.
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.
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.
The plugin name
The default format string to be save the date as. If not set, will automatically use the settings from the kartik\datecontrol\Module.
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'.
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.
Data type to use for the displayed date control. One of the FORMAT constants.
Any custom widget class to use. Will only be used if $autoWidget is set to false
.
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 forDatePicker
,TimePicker
, orDateTimePicker
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.
Method Details
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 |
Generates the display input.
protected string getDisplayInput ( ) | ||
throws | Exception |
---|
Gets the formatted display date value.
public string getDisplayValue ( $data ) | ||
$data | string | The input date data. |
Fetches the locale settings file.
protected static string getLocaleFile ( $lang ) | ||
$lang | string | The locale/language ISO code. |
return | string | The locale file name. |
---|
Generates the save input.
protected string getSaveInput ( ) |
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. |
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 |
Initializes widget based on module settings.
protected void initConfig ( ) | ||
throws | yii\base\InvalidConfigException |
---|
Whether a widget is used to render the display.
protected boolean isWidget ( ) |
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. |
---|
Registers assets for the kartik\datecontrol\DateControl widget.
protected void registerAssets ( ) |
Executes the widget.
public string|void run ( ) | ||
return | string|void | The rendering result may be directly "echoed" or returned as a string |
---|
Sets the locale using the locales configuration settings.
protected void setLocale ( ) |
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. |
---|
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. |
---|