Your search did not match any results.
Date Box

Overview

Documentation

The DateBox editor helps users enter or modify date and time values. This demo illustrates the following DateBox properties:

  • value
    A value the DateBox displays.

  • type
    Specifies whether the DateBox allows users to select only date, only time, or both.

  • displayFormat
    A date/time display format. You can use one of the predefined formats or specify a custom format. This demo illustrates the latter.

  • pickerType
    Specifies the type of UI used to select date or time. This demo shows how to change calendar to roller date picker.

  • showClearButton
    Specifies whether to display the button that clears the DateBox value.

  • disabled
    Specifies whether the DateBox responds to user interaction.

  • disabledDates
    Dates that are not available for selection.

  • applyValueMode
    Defines whether the selected value applies instantly or after a user clicks the Apply button.

Backend API
Copy to CodeSandBox
Apply
Reset
import React from 'react'; import DateBox from 'devextreme-react/date-box'; import service from './data.js'; class App extends React.Component { constructor(props) { super(props); this.state = { value: new Date(1981, 3, 27) }; this.now = new Date(); this.firstWorkDay2017 = new Date(2017, 0, 3); this.min = new Date(1900, 0, 1); this.dateClear = new Date(2015, 11, 1, 6); this.disabledDates = service.getFederalHolidays(); this.onValueChanged = this.onValueChanged.bind(this); } get diffInDay() { return `${Math.floor(Math.abs(((new Date()).getTime() - this.state.value.getTime()) / (24 * 60 * 60 * 1000))) } days`; } onValueChanged(e) { this.setState({ value: e.value }); } render() { return ( <div> <div className="dx-fieldset"> <div className="dx-field"> <div className="dx-field-label">Date</div> <div className="dx-field-value"> <DateBox defaultValue={this.now} type="date" /> </div> </div> <div className="dx-field"> <div className="dx-field-label">Time</div> <div className="dx-field-value"> <DateBox defaultValue={this.now} type="time" /> </div> </div> <div className="dx-field"> <div className="dx-field-label">Date and time</div> <div className="dx-field-value"> <DateBox defaultValue={this.now} type="datetime" /> </div> </div> <div className="dx-field"> <div className="dx-field-label">Custom format</div> <div className="dx-field-value"> <DateBox defaultValue={this.now} displayFormat="EEEE, MMM dd" /> </div> </div> <div className="dx-field"> <div className="dx-field-label">Date picker</div> <div className="dx-field-value"> <DateBox defaultValue={this.now} pickerType="rollers" /> </div> </div> <div className="dx-field"> <div className="dx-field-label">Clear button</div> <div className="dx-field-value"> <DateBox defaultValue={this.dateClear} type="time" showClearButton={true} /> </div> </div> <div className="dx-field"> <div className="dx-field-label">Disabled</div> <div className="dx-field-value"> <DateBox defaultValue={this.now} type="datetime" disabled={true} /> </div> </div> <div className="dx-field"> <div className="dx-field-label">Disable certain dates</div> <div className="dx-field-value"> <DateBox defaultValue={this.firstWorkDay2017} type="date" pickerType="calendar" disabledDates={this.disabledDates} /> </div> </div> </div> <div className="dx-fieldset"> <div className="dx-fieldset-header">Event Handling</div> <div className="dx-field"> <div className="dx-field-label">Set Birthday</div> <div className="dx-field-value"> <DateBox applyValueMode="useButtons" value={this.state.value} min={this.min} max={this.now} onValueChanged={this.onValueChanged} /> </div> </div> <div className="dx-field"> <div className="dx-field-value"> Your age is <div id="age">{this.diffInDay}</div> </div> </div> </div> </div> ); } } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.js'; ReactDOM.render( <App />, document.getElementById('app') );
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/21.1.6/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/21.1.6/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> </body> </html>
#age { display: inline-block; }
const federalHolidays = [ new Date(2017, 0, 1), new Date(2017, 0, 2), new Date(2017, 0, 16), new Date(2017, 1, 20), new Date(2017, 4, 29), new Date(2017, 6, 4), new Date(2017, 8, 4), new Date(2017, 9, 9), new Date(2017, 10, 11), new Date(2017, 10, 23), new Date(2017, 11, 25) ]; export default { getFederalHolidays() { return federalHolidays; } };
window.config = { transpiler: 'plugin-babel', meta: { 'devextreme/localization.js': { "esModule": true }, }, paths: { 'npm:': 'https://unpkg.com/' }, defaultExtension: 'js', map: { 'react': 'npm:react@17.0.2/umd/react.development.js', 'react-dom': 'npm:react-dom@17.0.2/umd/react-dom.development.js', 'prop-types': 'npm:prop-types@15.7.2/prop-types.js', 'rrule': 'npm:rrule@2.6.6/dist/es5/rrule.js', 'luxon': 'npm:luxon@1.28.0/build/global/luxon.min.js', 'es6-object-assign': 'npm:es6-object-assign@1.1.0', 'devextreme': 'npm:devextreme@21.1.6/cjs', 'devextreme-react': 'npm:devextreme-react@21.1.6', 'jszip': 'npm:jszip@3.7.1/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@1.4.2/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.1.32/dist/dx-diagram.js', 'devexpress-gantt': 'npm:devexpress-gantt@3.0.14/dist/dx-gantt.js', '@devextreme/vdom': 'npm:@devextreme/vdom@1.2.2', 'inferno': 'npm:inferno@7.4.10/dist/inferno.min.js', 'inferno-compat': 'npm:inferno-compat@7.4.10/dist/inferno-compat.min.js', 'inferno-create-element': 'npm:inferno-create-element@7.4.10/dist/inferno-create-element.min.js', 'inferno-dom': 'npm:inferno-dom@1.0.7/dist/inferno-dom.min.js', 'inferno-hydrate': 'npm:inferno-hydrate@7.4.10/dist/inferno-hydrate.min.js', 'inferno-clone-vnode': 'npm:inferno-clone-vnode@7.4.10/dist/inferno-clone-vnode.min.js', 'inferno-create-class': 'npm:inferno-create-class@7.4.10/dist/inferno-create-class.min.js', 'inferno-extras': 'npm:inferno-extras@7.4.10/dist/inferno-extras.min.js', // SystemJS plugins 'plugin-babel': 'npm:systemjs-plugin-babel@0.0.25/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0.0.25/systemjs-babel-browser.js' }, packages: { 'devextreme': { defaultExtension: 'js' }, '@devextreme/vdom': { defaultExtension: 'js' }, 'devextreme-react': { main: 'index.js' }, 'devextreme/events/utils': { main: 'index' }, 'devextreme/events': { main: 'index' }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js' } }, packageConfigPaths: [ "npm:@devextreme/*/package.json", ], babelOptions: { sourceMaps: false, stage0: true, react: true } }; System.config(window.config);