Class kartik\daterange\DateRangePicker

Inheritancekartik\daterange\DateRangePicker » 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
Available since version1.0

DateRangePicker is an advanced date range picker input for Yii Framework 2 based on bootstrap-daterangepicker plugin.

See also https://github.com/dangrossman/bootstrap-daterangepicker.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$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
$autoUpdateOnInit boolean Whether to auto update the input on initialization. kartik\daterange\DateRangePicker
$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
$callback string The javascript callback to be passed to the plugin constructor. kartik\daterange\DateRangePicker
$containerOptions array The HTML attributes for the container applied when $hideInput is set to true. kartik\daterange\DateRangePicker
$containerTemplate string The template for rendering the container, when hideInput is set to true. kartik\daterange\DateRangePicker
$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
$defaultPresetValueOptions array The HTML attributes for the span element that displays the default value for a preset dropdown. kartik\daterange\DateRangePicker
$disabled boolean Whether input is to be disabled kartik\base\InputWidget
$dropdownClass string Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method getDropdownClass()) kartik\base\BootstrapTrait
$encodeValue boolean Whether to HTML encode the value kartik\daterange\DateRangePicker
$endAttribute string The attribute name which you can set optionally to track changes to the range end value. kartik\daterange\DateRangePicker
$endInputOptions array The HTML attributes for the end input (applicable only if $endAttribute is set). kartik\daterange\DateRangePicker
$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
$hideInput boolean Whether to hide the input (e.g. when you want to show the date range picker as a dropdown). kartik\daterange\DateRangePicker
$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
$includeDaysFilter boolean Whether to add additional preset filter options for days (applicable only when $presetDropdown is true). kartik\daterange\DateRangePicker
$includeMonthsFilter boolean Whether to add additional preset filter options for months (applicable only when $presetDropdown is true). kartik\daterange\DateRangePicker
$initRangeExpr boolean Initialize all the list values as part of ranges configuration in $pluginOptions and convert all values to yii\web\JsExpression kartik\daterange\DateRangePicker
$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 form input kartik\daterange\DateRangePicker
$pickerIcon string The markup for the calendar picker icon. kartik\daterange\DateRangePicker
$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\daterange\DateRangePicker
$pluginOptions array Widget plugin options. kartik\base\WidgetTrait
$presetDropdown boolean Show a preset dropdown. kartik\daterange\DateRangePicker
$presetFilterDays array List of preset filter days (which will be shown as Last {n} days) kartik\daterange\DateRangePicker
$presetFilterMonths array List of preset filter months (which will be shown as Last {n} months) kartik\daterange\DateRangePicker
$readonly boolean Whether input is to be readonly kartik\base\InputWidget
$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
$startAttribute string The attribute name which you can set optionally to track changes to the range start value. kartik\daterange\DateRangePicker
$startInputOptions array The HTML attributes for the start input (applicable only if $startAttribute is set). kartik\daterange\DateRangePicker
$useWithAddon boolean Whether you are using the picker with a input group addon. kartik\daterange\DateRangePicker
$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

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
$_endInput string The generated input for end attribute when $endAttribute has been set kartik\daterange\DateRangePicker
$_format string The pluginOptions format configuration for the date time kartik\daterange\DateRangePicker
$_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
$_localeLang string Locale language configuration to be used for the plugin kartik\daterange\DateRangePicker
$_msgCat string Translation message file category name for i18n. kartik\base\TranslationTrait
$_separator string The pluginOptions separator configuration kartik\daterange\DateRangePicker
$_startInput string The generated input for start attribute when $startAttribute has been set kartik\daterange\DateRangePicker

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
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
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. yii\widgets\InputWidget
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
registerAssets() Registers the client assets for DateRangeicker widget. kartik\daterange\DateRangePicker
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\daterange\DateRangePicker
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
configureBsVersion() Configures the bootstrap version settings kartik\base\BootstrapTrait
convertDateFormat() Automatically convert the date format from PHP DateTime to Moment.js DateTime format as required by the bootstrap-daterangepicker plugin. kartik\daterange\DateRangePicker
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
getInput() Generates an input. kartik\base\InputWidget
getInputOpts() Gets input options based on type. kartik\daterange\DateRangePicker
getPluginScript() Returns the plugin registration script. kartik\base\WidgetTrait
getRangeAttr() Gets the range attribute value based on type. kartik\daterange\DateRangePicker
getRangeInput() Generates and returns the hidden input markup when one of start or end attributes are set. kartik\daterange\DateRangePicker
getRangeJs() Generates and returns the client script on date range change, when the start and end attributes are set. kartik\daterange\DateRangePicker
getRangeValue() Generates and returns the hidden input markup when one of start or end attributes are set. kartik\daterange\DateRangePicker
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
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
initLocale() Initialize locale settings. kartik\daterange\DateRangePicker
initRange() Initializes the pluginOptions range list. kartik\daterange\DateRangePicker
initRangeValue() Initializes the range values when one of start or end attributes are set. kartik\daterange\DateRangePicker
initSettings() Initializes widget settings kartik\daterange\DateRangePicker
isSameVersion() Compares two versions and checks if they are of the same major BS version. kartik\base\BootstrapTrait
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
parseJsExpr() Parses variable and converts it to a yii\web\JsExpression instance. kartik\daterange\DateRangePicker
parseVer() Parses and returns the major BS version kartik\base\BootstrapTrait
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
renderInput() Renders the input. kartik\daterange\DateRangePicker
renderInputHtml() Render a HTML input tag. yii\widgets\InputWidget
setDataVar() Sets a HTML5 data variable. kartik\base\WidgetTrait
setInputOpts() Sets input options for a specific type. kartik\daterange\DateRangePicker
setLanguage() Sets the language JS file if it exists. kartik\base\InputWidget

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
LOAD_PROGRESS '
 
'
kartik\base\InputWidget

Property Details

$_endInput protected property

The generated input for end attribute when $endAttribute has been set

protected string $_endInput ''
$_format protected property

The pluginOptions format configuration for the date time

protected string $_format null
$_localeLang protected property

Locale language configuration to be used for the plugin

protected string $_localeLang ''
$_separator protected property

The pluginOptions separator configuration

protected string $_separator null
$_startInput protected property

The generated input for start attribute when $startAttribute has been set

protected string $_startInput ''
$autoUpdateOnInit public property

Whether to auto update the input on initialization. If set to false, this will auto set the pluginOptions['autoUpdateInput'] to false. A default $callback will be auto-generated when this is set to false.

public boolean $autoUpdateOnInit false
$callback public property

The javascript callback to be passed to the plugin constructor. Note: a default value is set for this property when you set $hideInput to false, OR when you set $useWithAddon to true or $autoUpdateOnInit to false. If you do set this property, it will override any auto-generated callbacks.

public string $callback null
$containerOptions public property

The HTML attributes for the container applied when $hideInput is set to true. The following special options are recognized:

  • tag: string, the HTML tag for rendering the container. Defaults to div.
$containerTemplate public property

The template for rendering the container, when hideInput is set to true. The special tag {input} will be replaced with the hidden form input. In addition, the element with css class range-value will be replaced by the calculated plugin value. The special token {value} will be replaced with the value of the hidden form input during initialization and the token {pickerIcon} will be replaced with the $pickerIcon property.

$defaultPresetValueOptions public property

The HTML attributes for the span element that displays the default value for a preset dropdown. This property is not used any more and the $containerTemplate setting directly can be used to render the preset value input.

$encodeValue public property

Whether to HTML encode the value

public boolean $encodeValue true
$endAttribute public property

The attribute name which you can set optionally to track changes to the range end value. One of the following actions will be taken when this is set:

  • If using with model, an active hidden input will be automatically generated using this as an attribute name for the end value of the range.
  • If using without model, a normal hidden input will be automatically generated using this as an input name for the end value of the range.
public string $endAttribute null
$endInputOptions public property

The HTML attributes for the end input (applicable only if $endAttribute is set). If using without a model, you can set an end value here within the value property.

public array $endInputOptions = []
$hideInput public property

Whether to hide the input (e.g. when you want to show the date range picker as a dropdown). If set to true, the input will be hidden. The plugin will be initialized on a container element (default 'div'), using the container template. A default $callback will be setup in this case to display the selected range value within the container.

public boolean $hideInput false
$includeDaysFilter public property

Whether to add additional preset filter options for days (applicable only when $presetDropdown is true). If this is set to true following additional preset filter option(s) will be available:

  • Last {n} Days

where n will be picked up from the list of filter days set via [presetFilterDays]

$includeMonthsFilter public property

Whether to add additional preset filter options for months (applicable only when $presetDropdown is true). If this is set to true following additional preset filter options will be available:

  • Last {n} Months

where n will be picked up from the list of filter months set via [presetFilterMonths]

$initRangeExpr public property

Initialize all the list values as part of ranges configuration in $pluginOptions and convert all values to yii\web\JsExpression

public boolean $initRangeExpr true
$options public property

The HTML attributes for the form input

public array $options = [
    'class' => 'form-control'
]
$pickerIcon public property

The markup for the calendar picker icon. If not set this will default to:

  • <i class="glyphicon glyphicon-calendar"></i> if $bsVersion is set to 3.x
  • <i class="fas fa-calendar-alt"></i> if $bsVersion is set to 4.x or 5.x
public string $pickerIcon null
$pluginName public property

The plugin name

public string $pluginName 'daterangepicker'
$presetDropdown public property

Show a preset dropdown. If set to true, this will automatically generate a preset list of ranges for selection. Setting this to true will also automatically set $initRangeExpr to true.

public boolean $presetDropdown false
$presetFilterDays public property

List of preset filter days (which will be shown as Last {n} days)

public array $presetFilterDays = [
    7,
    
30
]
$presetFilterMonths public property

List of preset filter months (which will be shown as Last {n} months)

public array $presetFilterMonths = [
    3,
    
6,
    
12
]
$startAttribute public property

The attribute name which you can set optionally to track changes to the range start value. One of the following actions will be taken when this is set:

  • If using with model, an active hidden input will be automatically generated using this as an attribute name for the start value of the range.
  • If using without model, a normal hidden input will be automatically generated using this as an input name for the start value of the range.
public string $startAttribute null
$startInputOptions public property

The HTML attributes for the start input (applicable only if $startAttribute is set). If using without a model, you can set a start value here within the value property.

$useWithAddon public property

Whether you are using the picker with a input group addon. You can set it to true, when $hideInput is false, and you wish to show the picker position more correctly at the input-group addon indicator. A default $callback will be generated in this case to generate the selected range value for the input.

public boolean $useWithAddon false

Method Details

convertDateFormat() protected static method

Automatically convert the date format from PHP DateTime to Moment.js DateTime format as required by the bootstrap-daterangepicker plugin.

See also:

protected static string convertDateFormat ( $format )
$format string

The PHP date format string

getInputOpts() protected method

Gets input options based on type.

protected array|mixed getInputOpts ( $type '' )
$type string

Whether start or end

getRangeAttr() protected method

Gets the range attribute value based on type.

protected mixed|string getRangeAttr ( $type '' )
$type string

Whether start or end

getRangeInput() protected method

Generates and returns the hidden input markup when one of start or end attributes are set.

protected string getRangeInput ( $type '' )
$type string

Whether start or end

getRangeJs() protected method

Generates and returns the client script on date range change, when the start and end attributes are set.

protected string getRangeJs ( $type '' )
$type string

Whether start or end

getRangeValue() protected method

Generates and returns the hidden input markup when one of start or end attributes are set.

protected string getRangeValue ( $type '' )
$type string

Whether start or end

throws Exception
initLocale() protected method

Initialize locale settings.

protected void initLocale ( )
throws \ReflectionException|\Exception
initRange() protected method

Initializes the pluginOptions range list.

protected void initRange ( )
throws yii\base\InvalidConfigException
initRangeValue() protected method

Initializes the range values when one of start or end attributes are set.

protected void initRangeValue ( $type '', $value '' )
$type string

Whether start or end

$value string

The value to set

initSettings() protected method

Initializes widget settings

protected void initSettings ( )
throws yii\base\InvalidConfigException
throws ReflectionException
parseJsExpr() protected static method

Parses variable and converts it to a yii\web\JsExpression instance.

protected static yii\web\JsExpression parseJsExpr ( $value )
$value string|yii\web\JsExpression
registerAssets() public method

Registers the client assets for DateRangeicker widget.

public void registerAssets ( )
renderInput() protected method

Renders the input.

protected string renderInput ( )
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

throws yii\base\InvalidConfigException
throws ReflectionException
setInputOpts() protected method

Sets input options for a specific type.

protected void setInputOpts ( $type '', $options = [] )
$type string

Whether start or end

$options array

The options to set