Version: current

# Class DatetimeField

A composite field for date and time entry, based on `DateField` and `TimeField`. Usually saves into a single `SS_Datetime` database column. If you want to save into `Date` or `Time` columns, please instanciate the fields separately.

# Configuration

All options in `DatetimeField::setConfig()` are passed through to `DateField` and `TimeField`.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  FormField
  DatetimeField

### Direct known subclasses

`DatetimeField_Readonly`

Package: sapphire\forms
Located at sapphire/forms/DatetimeField.php

## Methods summary

`public` | # `__construct( `FormField::$name` $name, `FormField::$title` $title = null, `FormField::$value` $value = "" )` Create a new field. Create a new field. #### Parameters $name name The internal field name, passed to forms. $title title The field label. $value value The value of the field. #### Overrides `FormField::__construct`
`public` | # `setForm( mixed $form )` Set the container form. This is called whenever you create a new form and put fields inside it, so that you don't have to worry about linking the two. Set the container form. This is called whenever you create a new form and put fields inside it, so that you don't have to worry about linking the two. #### Overrides `FormField::setForm`
`public` | # `Field( )` Returns the form field - used by templates. Although FieldHolder is generally what is inserted into templates, all of the field holder templates make use of $Field. It's expected that FieldHolder will give you the "complete" representation of the field on the form, whereas Field will give you the core editing widget, such as an input tag. Returns the form field - used by templates. Although FieldHolder is generally what is inserted into templates, all of the field holder templates make use of $Field. It's expected that FieldHolder will give you the "complete" representation of the field on the form, whereas Field will give you the core editing widget, such as an input tag. Our base FormField class just returns a span containing the value. This should be overridden! #### Overrides `FormField::Field`
`public` | # `setValue( string|array $val )` Sets the internal value to ISO date format. Sets the internal value to ISO date format. #### Parameters $val string|array $val String expects an ISO date format. Array notation with 'date' and 'time' keys can contain localized strings. If the 'dmyfields' option is used for `DateField`, the 'date' value may contain array notation was well (see DateField->setValue()). #### Overrides `FormField::setValue`
`public` | # `dataValue( )` Returns the field value suitable for insertion into the data object Returns the field value suitable for insertion into the data object #### Overrides `FormField::dataValue`
`public `DateField`` | # `getDateField( )` #### Returns ``DateField`` DateField
`public `TimeField`` | # `getTimeField( )` #### Returns ``TimeField`` TimeField
`public` | # `setLocale( mixed $locale )`
`public` | # `getLocale( )`
`public` | # `setConfig( string $name, mixed $val )` Note: Use `DatetimeField::getDateField()` and `DatetimeField::getTimeField()` to set field-specific config options. Note: Use `DatetimeField::getDateField()` and `DatetimeField::getTimeField()` to set field-specific config options. #### Parameters $name string $name $val mixed $val
`public mixed` | # `getConfig( String $name )` Note: Use `DatetimeField::getDateField()` and `DatetimeField::getTimeField()` to get field-specific config options. Note: Use `DatetimeField::getDateField()` and `DatetimeField::getTimeField()` to get field-specific config options. #### Parameters $name String $name #### Returns `mixed` mixed
`public` | # `validate( mixed $validator )` Validation Functions for each field type by default formfield doesnt have a validation function Validation Functions for each field type by default formfield doesnt have a validation function #### Overrides `FormField::validate`
`public` | # `jsValidation( )` javascript handler Functions for each field type by default formfield doesnt have a validation function javascript handler Functions for each field type by default formfield doesnt have a validation function #### Overrides `FormField::jsValidation`
`public` | # `performReadonlyTransformation( )` Returns a readonly version of this field Returns a readonly version of this field #### Overrides `FormField::performReadonlyTransformation`

### Methods inherited from FormField

`FieldHolder()`, `LeftTitle()`, `Link()`, `Message()`, `MessageType()`, `Name()`, `Required()`, `RightTitle()`, `SmallFieldHolder()`, `Title()`, `Type()`, `Value()`, `addExtraAttribute()`, `addExtraClass()`, `allowHTML5()`, `allow_html5()`, `attrName()`, `attrTitle()`, `attrValue()`, `createTag()`, `debug()`, `describe()`, `extraClass()`, `fieldHolderTemplates()`, `fieldTemplates()`, `forTemplate()`, `getCustomValidationMessage()`, `getExtraClasses()`, `getForm()`, `getHTML5Attribute()`, `getTabIndex()`, `getTabIndexHTML()`, `hasClass()`, `hasData()`, `id()`, `isComposite()`, `isDisabled()`, `isReadonly()`, `name_to_label()`, `performDisabledTransformation()`, `removeExtraAttribute()`, `removeExtraClass()`, `rootFieldSet()`, `saveInto()`, `securityTokenEnabled()`, `setAutocomplete()`, `setContainerFieldSet()`, `setCustomValidationMessage()`, `setDisabled()`, `setError()`, `setFieldHolderTemplate()`, `setHTML5Attribute()`, `setLeftTitle()`, `setName()`, `setReadonly()`, `setRightTitle()`, `setSmallFieldHolderTemplate()`, `setTabIndex()`, `setTemplate()`, `setTitle()`, `smallFieldHolderTemplates()`, `transform()`, `useHTML5()`, `use_html5()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`, `getRequest()`, `handleRequest()`, `hasAction()`, `httpError()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`protected `DateField`` | $dateField | #
`protected `TimeField`` | $timeField | #
`protected array` | $config | #

### Properties inherited from FormField

`$autocomplete`, `$containerFieldSet`, `$customValidationMessage`, `$description`, `$disabled`, `$dontEscape`, `$extraAttributes`, `$extraClass`, `$extraClasses`, `$fieldHTML5`, `$fieldHolderTemplate`, `$form`, `$html5Attributes`, `$leftTitle`, `$message`, `$messageType`, `$name`, `$possible_autocomplete_values`, `$readonly`, `$rightTitle`, `$smallFieldHolderTemplate`, `$tabIndex`, `$template`, `$title`, `$use_html5`, `$value`

### Properties inherited from RequestHandler

`$allowed_actions`, `$brokenOnConstruct`, `$request`, `$url_handlers`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -