InputfieldDatetime class

Inputfield that accepts date and optionally time

// get a datetime Inputfield
$f = $modules->get('InputfieldDatetime');
$f->attr('name', 'test_date');
$f->label = 'Test date';
$f->val(time()); // value is get or set a UNIX timestamp

// date input with jQuery UI datepicker on focus
$f->inputType = 'text'; // not necessary as this is the default
$f->datepicker = InputfieldDatetime::datepickerFocus;

// date selects
$f->inputType = 'select';
$f->dateSelectFormat = 'mdy'; // month abbr (i.e. 'Sep'), day, year
$f->dateSelectFormat = 'Mdy'; // month full (i.e. 'September'), day, year
$f->yearFrom = 2019; // optional year range from
$f->yearTo = 2024; // optional year range to

// HTML5 date, time or date+time inputs
$f->inputType = 'html';
$f->htmlType = 'date'; // or 'time' or 'datetime'

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the InputfieldDatetime class also inherits all the methods and properties of: Inputfield, WireData and Wire.

Show class?     Show args?       Only hookable?    

Common

NameReturnSummary 
InputfieldDatetime::datepickerOptions()
arrayGet or set jQuery UI datepicker (and timepicker) options 
InputfieldDatetime::getConfigInputfields()
NoneDate/time Inputfield configuration, per field
InputfieldDatetime::getInputType()
InputfieldDatetimeTypeGet current date/time input type instance 
InputfieldDatetime::getInputTypes()
InputfieldDatetimeTypeGet all date/time input types 
InputfieldDatetime::processInput(WireInputData $input)
Inputfield InputfieldDatetimeProcess input
InputfieldDatetime::render()
stringRender the date/time inputfield
InputfieldDatetime::renderReady()
boolCalled before the render method, from a hook in the Inputfield class 
InputfieldDatetime::renderValue()
NoneRender value for presentation, non-input
InputfieldDatetime::set(string $key, mixed $value)
Inputfield WireDataSet property 
InputfieldDatetime::setAttribute(string $key, mixed $value)
Inputfield InputfieldDatetimeCapture setting of the 'value' attribute and convert string dates to unix timestamp 

Properties

NameReturnSummary 
InputfieldDatetime::changeMonth bool int Show a select dropdown to allow changing month?
DEFAULT: true
 
InputfieldDatetime::changeYear bool int Show a select dropdown to allow changing year?
DEFAULT: true
 
InputfieldDatetime::dateInputFormat string Date input format to use, see WireDateTime::$dateFormats
DEFAULT: 'Y-m-d'
 
InputfieldDatetime::dateMax string Refers to the max attribute on date inputs, ISO-8601 (YYYY-MM-DD) 
InputfieldDatetime::dateMin string Refers to the min attribute on date inputs, ISO-8601 (YYYY-MM-DD) 
InputfieldDatetime::dateSelectFormat string Format to use for date select, i.e. 'mdy' for 'Sep 1 2024' or 'Mdy' for 'September 1 2024' 
InputfieldDatetime::dateStep int Refers to the step attribute on date inputs 
InputfieldDatetime::datepicker int jQuery UI datepicker type (see datepicker* constants) 
InputfieldDatetime::defaultToday int bool When no value is present, default to today’s date/time? 
InputfieldDatetime::htmlType string When "html" is selection for $inputType, this should be one of: "date", "time" or "datetime". 
InputfieldDatetime::inputType string Input type to use, one of: "text", "select" or "html" (when html type is used, also specify $htmlType). 
InputfieldDatetime::numberOfMonths int Number of month calendars to show together side-by-side
DEFAULT: 1
 
InputfieldDatetime::placeholder string Placeholder attribute text 
InputfieldDatetime::requiredAttr bool int When combined with "required" option, this also makes it use the HTML5 "required" attribute .
DEFAULT: false
 
InputfieldDatetime::showAnim string Animation type
DEFAULT: 'fade'
 
InputfieldDatetime::showButtonPanel bool int Show "Today" and "Done" buttons under the calendar?
DEFAULT: false
 
InputfieldDatetime::showMonthAfterYear bool int Show the month after the year?
DEFAULT: false
 
InputfieldDatetime::showOtherMonths bool int Show dates in other months (non-selectable) at the start or end of the current month?
DEFAULT: false
 
InputfieldDatetime::subDay int Substitute day when month+year or time only selectinos are made
DEFAULT: 8
 
InputfieldDatetime::subHour int Substitute hour when date-only selections are made
DEFAULT: 0
 
InputfieldDatetime::subMinute int Substitute minute when date-only selection are made
DEFAULT: 0
 
InputfieldDatetime::subMonth int Substitute month when time-only selections are made
DEFAULT: 4
 
InputfieldDatetime::subYear int Substitute year when month+day or time only selections are made
DEFAULT: 2010
 
InputfieldDatetime::timeInputFormat string Time input format to use, see WireDateTime::$timeFormats
DEFAULT: ''
 
InputfieldDatetime::timeInputSelect int jQuery UI timeSelect type (requires datepicker)—specify 1 to use a <select> for time input, or 0 to use a slider
DEFAULT: 0
 
InputfieldDatetime::timeMax string Refers to the max attribute on time inputs (HH:MM) 
InputfieldDatetime::timeMin string Refers to the min attribute on time inputs (HH:MM) 
InputfieldDatetime::timeSelectFormat string Format to use for time select 
InputfieldDatetime::timeStep int Refers to the step attribute on time inputs 
InputfieldDatetime::value int This Inputfield keeps the value in UNIX timestamp format (int). 
InputfieldDatetime::yearFrom int First selectable year
DEFAULT: current year - 100
 
InputfieldDatetime::yearLock bool int Disallow selection of years outside the yearFrom/yearTo range?
DEFAULT: false
 
InputfieldDatetime::yearRange string Selectable year range in the format -30:+20 where -30 is number of years before now and +20 is number of years after now. 
InputfieldDatetime::yearTo int Last selectable year
DEFAULT: current year + 20
 

Additional methods and properties

In addition to the methods and properties above, InputfieldDatetime also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.251