const DemoApp = angular.module('DemoApp', ['dx']);
DemoApp.controller('DemoController', ($scope) => {
const now = new Date();
$scope.dateBox = {
dateFormat: {
type: 'date',
value: now,
},
timeFormat: {
type: 'time',
value: now,
},
dateTimeFormat: {
type: 'datetime',
value: now,
},
customFormat: {
displayFormat: 'EEEE, MMM dd',
value: now,
},
dateByPicker: {
pickerType: 'rollers',
value: now,
},
disabled: {
type: 'datetime',
disabled: true,
value: now,
},
disabledDates: {
type: 'date',
pickerType: 'calendar',
value: new Date(2017, 0, 3),
disabledDates: federalHolidays,
},
clear: {
type: 'time',
showClearButton: true,
value: new Date(2015, 11, 1, 6),
},
eventOptions: {
applyValueMode: 'useButtons',
value: new Date(1981, 3, 27),
max: new Date(),
min: new Date(1900, 0, 1),
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/22.2.6/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/22.2.6/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),
];