title: DateField summary: How to format and use the DateField class. # DateField This `FormField` subclass lets you display an editable date, in a single text input field. It implements the [HTML5 input date type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date) (with `type=date`). In supported browsers, this will cause a localised date picker to appear for users. HTML5 date fields present and save ISO 8601 date formats (`y-MM-dd`), since the browser takes care of converting to/from a localised presentation. Browsers without support receive an `` based polyfill. The following example will add a simple DateField to your Page, allowing you to enter a date manually. **mysite/code/Page.php** :::php 'Date', ); public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab( 'Root.Main', DateField::create('MyDate', 'Enter a date') ); return $fields; } } ## Custom Date Format A custom date format for a [api:DateField] can be provided through `setDateFormat`. This is only necessary if you want to opt-out of the built-in browser localisation via `type=date`. :::php // will display a date in the following format: 31/06/2012 DateField::create('MyDate') ->setHTML5(false) ->setDateFormat('dd/MM/yyyy');
The formats are based on [ICU format](http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details).
## Min and Max Dates Sets the minimum and maximum allowed date values using the `min` and `max` configuration settings (in ISO format or `strtotime()`). :::php DateField::create('MyDate') ->setMinDate('-7 days') ->setMaxDate('2012-12-31') ## Formatting Hints It's often not immediate apparent which format a field accepts, and showing the technical format (e.g. `HH:mm:ss`) is of limited use to the average user. An alternative is to show the current date in the desired format alongside the field description as an example. :::php $dateField = DateField::create('MyDate'); // Show long format as text below the field $dateField->setDescription(_t( 'FormField.Example', 'e.g. {format}', [ 'format' => $dateField->getDateFormat() ] )); // Alternatively, set short format as a placeholder in the field $dateField->setAttribute('placeholder', $dateField->getDateFormat());
Fields scaffolded through [api:DataObject::scaffoldCMSFields()] automatically have a description attached to them.
## API Documentation * [api:DateField]