Your search did not match any results.
Date Box

Overview

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 one of the following types:

    • "date"
      Users can select the date from the calendar, or they can type in their own date value (in the required format).

    • "time"
      Users can select a time from a range between 12:00 AM and 11:30 PM at 30-minute intervals, or they can type in their own time value (in the required format). Specify the interval property to set the time interval.

    • "datetime"
      Users can select the date from the calendar and the time from the spin and dropdown editors. They can also choose the Today button.

  • 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 a date or time. This demo shows how to change a calendar to a 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.

To get started with the DevExtreme DateBox component, refer to the following tutorial for step-by-step instructions: Getting Started with DateBox.

Backend API
Copy to CodeSandBox
Apply
Reset
<div class="dx-fieldset"> <div class="dx-field"> <div class="dx-field-label">Date</div> <div class="dx-field-value"> <dx-date-box [value]="now" type="date"> </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-label">Time</div> <div class="dx-field-value"> <dx-date-box [value]="now" type="time"> </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-label">Date and time</div> <div class="dx-field-value"> <dx-date-box [value]="now" type="datetime"> </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-label">Custom format</div> <div class="dx-field-value"> <dx-date-box [value]="now" displayFormat="EEEE, MMM dd"> </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-label">Date picker</div> <div class="dx-field-value"> <dx-date-box [value]="now" pickerType="rollers"> </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-label">Clear button</div> <div class="dx-field-value"> <dx-date-box [value]="dateClear" type="time" [showClearButton]="true"> </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-label">Disabled</div> <div class="dx-field-value"> <dx-date-box [value]="now" type="datetime" [disabled]="true"> </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-label">Disable certain dates</div> <div class="dx-field-value"> <dx-date-box [value]="firstWorkDay2017" type="date" pickerType="calendar" [disabledDates]="disabledDates" > </dx-date-box> </div> </div> </div> <div class="dx-fieldset"> <div class="dx-fieldset-header">Event Handling</div> <div class="dx-field"> <div class="dx-field-label">Set Birthday</div> <div class="dx-field-value"> <dx-date-box applyValueMode="useButtons" [(value)]="value" [min]="min" [max]="now" > </dx-date-box> </div> </div> <div class="dx-field"> <div class="dx-field-value"> Your age is <div id="age">{{ diffInDay }}</div> </div> </div> </div>
import { Component, NgModule, enableProdMode } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { DxDateBoxModule } from 'devextreme-angular'; import { Service } from './app.service'; if (!/localhost/.test(document.location.host)) { enableProdMode(); } @Component({ selector: 'demo-app', providers: [Service], templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'], }) export class AppComponent { value: Date = new Date(1981, 3, 27); now: Date = new Date(); firstWorkDay2017: Date = new Date(2017, 0, 3); min: Date = new Date(1900, 0, 1); dateClear = new Date(2015, 11, 1, 6); disabledDates: Date[]; constructor(service: Service) { this.disabledDates = service.getFederalHolidays(); } get diffInDay() { return `${Math.floor(Math.abs(((new Date()).getTime() - this.value.getTime()) / (24 * 60 * 60 * 1000)))} days`; } } @NgModule({ imports: [ BrowserModule, DxDateBoxModule, ], declarations: [AppComponent], bootstrap: [AppComponent], }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
::ng-deep #age { display: inline-block; }
import { Injectable } from '@angular/core'; const federalHolidays: Date[] = [ 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), ]; @Injectable() export class Service { getFederalHolidays() : Date[] { return federalHolidays; } }
// In real applications, you should not transpile code in the browser. // You can see how to create your own application with Angular and DevExtreme here: // https://js.devexpress.com/Documentation/Guide/Angular_Components/Getting_Started/Create_a_DevExtreme_Application/ window.config = { transpiler: 'ts', typescriptOptions: { module: 'system', emitDecoratorMetadata: true, experimentalDecorators: true, }, meta: { 'typescript': { 'exports': 'ts', }, 'devextreme/localization.js': { 'esModule': true, }, }, paths: { 'npm:': 'https://unpkg.com/', }, map: { 'ts': 'npm:plugin-typescript@4.2.4/lib/plugin.js', 'typescript': 'npm:typescript@4.2.4/lib/typescript.js', '@angular/core': 'npm:@angular/core@12.2.16', '@angular/platform-browser': 'npm:@angular/platform-browser@12.2.16', '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic@12.2.16', '@angular/forms': 'npm:@angular/forms@12.2.16', '@angular/common': 'npm:@angular/common@12.2.16', '@angular/compiler': 'npm:@angular/compiler@12.2.16', 'tslib': 'npm:tslib@2.3.1/tslib.js', 'rxjs': 'npm:rxjs@7.5.3/dist/bundles/rxjs.umd.js', 'rxjs/operators': 'npm:rxjs@7.5.3/dist/cjs/operators/index.js', 'rrule': 'npm:rrule@2.6.4/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@22.1.3/cjs', 'devextreme/bundles/dx.all': 'npm:devextreme@22.1.3/bundles/dx.all.js', 'jszip': 'npm:jszip@3.7.1/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@1.5.16/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.1.57', 'devexpress-gantt': 'npm:devexpress-gantt@4.1.30', 'devextreme-angular': 'npm:devextreme-angular@22.1.3', '@devextreme/runtime': 'npm:@devextreme/runtime@3.0.7', 'inferno': 'npm:inferno@7.4.4/dist/inferno.min.js', 'inferno-compat': 'npm:inferno-compat@7.4.11/dist/inferno-compat.min.js', 'inferno-create-element': 'npm:inferno-create-element@7.4.11/dist/inferno-create-element.min.js', 'inferno-dom': 'npm:inferno-dom/dist/inferno-dom.min.js', 'inferno-hydrate': 'npm:inferno-hydrate@7.4.11/dist/inferno-hydrate.min.js', 'inferno-clone-vnode': 'npm:inferno-clone-vnode@7.4.11/dist/inferno-clone-vnode.min.js', 'inferno-create-class': 'npm:inferno-create-class@7.4.11/dist/inferno-create-class.min.js', 'inferno-extras': 'npm:inferno-extras@7.4.11/dist/inferno-extras.min.js', }, packages: { 'app': { main: './app.component.ts', defaultExtension: 'ts', }, 'devextreme': { defaultExtension: 'js', }, 'devextreme/events/utils': { main: 'index', }, 'devextreme/events': { main: 'index', }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js', }, 'rxjs': { defaultExtension: 'js', }, 'rxjs/operators': { defaultExtension: 'js', }, }, packageConfigPaths: [ 'npm:@devextreme/*/package.json', 'npm:@devextreme/runtime@3.0.7/inferno/package.json', 'npm:@angular/*/package.json', 'npm:@angular/common@12.2.16/*/package.json', 'npm:rxjs@7.5.3/package.json', 'npm:rxjs@7.5.3/operators/package.json', 'npm:devextreme-angular@22.1.3/*/package.json', 'npm:devextreme-angular@22.1.3/ui/*/package.json', 'npm:devextreme-angular@22.1.3/package.json', 'npm:devexpress-diagram@2.1.57/package.json', 'npm:devexpress-gantt@4.1.30/package.json', ], }; System.config(window.config);
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <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/22.1.3/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.1.3/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/zone.js@0.11.4/dist/zone.js"></script> <script src="https://unpkg.com/reflect-metadata@0.1.3/Reflect.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script src="config.js"></script> <script> System.import("app").catch(console.error.bind(console)); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <demo-app>Loading...</demo-app> </div> </body> </html>