Я новичок в angular и пытаюсь решить следующую проблему: у меня есть этот код
<div class="col-xs-6">
<label for="from">Date from*</label>
<div ng-controller="DatePickerCtrl" class="form-group"
ng-class="{'has-error': formErrors.dateFrom}">
<p class="input-group">
<input type="text" class="form-control" id="from" name="from"
placeholder="{{dateOptions.format}}"
datepicker-options="dateOptions"
datepicker-popup="{{dateOptions.format}}"
datepicker-append-to-body="true"
on-open-focus="false"
ng-model="formData.dateFrom"
ng-change="formErrors.dateFrom = isDateAfter(formData.dateFrom, formData.dateTo)"
required
is-open="opened" close-text="Close" aria-describedby="from"
/>
<span class="input-group-btn">
<button class="btn btn-default" ng-click="toggle($event)">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</p>
<div class="help-block" ng-class="{'has-error': formErrors.dateFrom.length}"
ng-bind="formErrors.dateFrom"></div>
</div>
</div>
I Нужен следующий функционал - когда я пу sh нажимаю кнопку «Генерировать», мне нужно передать датайкеру новую дату (). Так что мой отчет должен создать несколько отчетов в течение сегодняшнего дня (текущая дата). Это похоже на некоторую автоматизацию, вместо того, чтобы выбирать дату вручную, я просто хочу нажать кнопку «Создать», и текущая дата передается в сборщик данных и отображается на экране. Предположим, что текущая дата 3/11/2020. Тогда у меня должен был быть результат на экране 3/11/20. Но у меня всегда минус 1 день ...
Мой data_picker:
app.controller('DatePickerCtrl', ['$scope', '$filter', '$log',
function($scope, $filter, $log) {
init();
function init() {
$scope.opened = false;
$scope.toggle = function($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = !$scope.opened;
};
$scope.dateOptions = {
format: 'M/d/yy',
startingDay: 1
};
}
$scope.isDateAfter = function(minDate, selectedDate) {
if (minDate && selectedDate) {
var fromDate = new Date(minDate);
var toDate = new Date(selectedDate);
if (dateAfter(fromDate, toDate)) {
return 'Invalid range. Date from is after date to';
}
}
return '';
};
function dateAfter(from, to) {
return from.getTime() > to.getTime();
}
}
]);
Вот так я создаю дату для средства выбора даты:
function getDate() {
let today = new Date;
let mm = today.getUTCMonth() + 1;
let dd = today.getUTCDate();
let yy = today.getUTCFullYear().toString().slice(2, 4);
return mm + '/' + dd + '/' + yy;
}
Основная проблема в том, что средство выбора даты отнимает один день от текущего дня, который я ему передал! Я просто жестко закодировал дату «3/11/20» и вместо этого вижу на экране дату «3/10/20». Не могу решить эту проблему ((Может быть, кто-то может помочь мне с этим? Заранее спасибо)
решено: средство выбора даты работает правильно, только когда я передаю ему дату в полном формате, например -> new Date ();