const DemoApp = angular.module('DemoApp', ['dx']);
DemoApp.controller('DemoController', ($scope) => {
const now = new Date();
$scope.dateBox = {
dateFormat: {
type: 'date',
value: now,
inputAttr: { 'aria-label': 'Date' },
},
timeFormat: {
type: 'time',
value: now,
inputAttr: { 'aria-label': 'Time' },
},
dateTimeFormat: {
type: 'datetime',
value: now,
inputAttr: { 'aria-label': 'Date and time' },
},
customFormat: {
displayFormat: 'EEEE, MMM dd',
value: now,
inputAttr: { 'aria-label': 'Custom format' },
},
dateByPicker: {
pickerType: 'rollers',
value: now,
inputAttr: { 'aria-label': 'Date picker' },
},
disabled: {
type: 'datetime',
disabled: true,
value: now,
inputAttr: { 'aria-label': 'Disabled Date and time' },
},
disabledDates: {
type: 'date',
pickerType: 'calendar',
value: new Date(2017, 0, 3),
disabledDates: federalHolidays,
inputAttr: { 'aria-label': 'Disabled certain dates' },
},
clear: {
type: 'time',
showClearButton: true,
value: new Date(2015, 11, 1, 6),
inputAttr: { 'aria-label': 'Clear button' },
},
eventOptions: {
applyValueMode: 'useButtons',
value: new Date(1981, 3, 27),
max: new Date(),
min: new Date(1900, 0, 1),
inputAttr: { 'aria-label': 'Set Birthday' },
bindingOptions: {
value: 'dateBox.eventOptions.value',
},
diffInDay() {
return `${Math.floor(Math.abs((new Date() - $scope.dateBox.eventOptions.value) / (24 * 60 * 60 * 1000)))} days`;
},
},
};
});
<!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" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script>
<link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/23.1.5/css/dx.light.css" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script>window.angular || document.write(decodeURIComponent('%3Cscript src="js/angular.min.js"%3E%3C/script%3E'))</script>
<script src="https://cdn3.devexpress.com/jslib/23.1.5/js/dx.all.js"></script>
<script src="data.js"></script>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script src="index.js"></script>
</head>
<body class="dx-viewport">
<div class="demo-container" ng-app="DemoApp" ng-controller="DemoController">
<div class="dx-fieldset">
<div class="dx-field">
<div class="dx-field-label">Date</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.dateFormat"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-label">Time</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.timeFormat"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-label">Date and time</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.dateTimeFormat"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-label">Custom format</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.customFormat"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-label">Date picker</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.dateByPicker"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-label">Clear button</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.clear"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-label">Disabled</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.disabled"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-label">Disable certain dates</div>
<div class="dx-field-value">
<div dx-date-box="dateBox.disabledDates"></div>
</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">
<div dx-date-box="dateBox.eventOptions"></div>
</div>
</div>
<div class="dx-field">
<div class="dx-field-value"> Your age is <div id="age">{{dateBox.eventOptions.diffInDay()}}</div> </div>
</div>
</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),
];