Как объединить значения из DatePicker & Timepicker в одну переменную
У меня есть угловой пользовательский интерфейс приложения DatePicker & Timepicker, использующий angular-ui, когда пользователь выбирает дату $Scope.dt
и установить время $Scope.mytime
Я пытаюсь объединить в одном $Scope.SelectedDateTime я получаю NaN. Я не знаю как это исправить
обновлять, когда пользователь выбирает дату. Значение $ scope.dt будет "хорошо, когда пользователь выбирает дату, это будет" чт 05 марта 2015 г. 00:00:00 GMT-0500 (восточное стандартное время) и значение $scope.mytime 'чт чт 05 марта 2015 23:30:00 GMT-0500 (восточное стандартное время)'как объединить их в одну переменную html
<h4>Popup</h4>
<div class="row">
<div class="col-md-6">
<p class="input-group">
<input type="text" class="form-control" datepicker-popup="{{format}}" ng-model="dt" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>
</div>
</div>
<timepicker ng-model="mytime" ng-change="changed()" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"></timepicker>
<button type="button" class="btn btn-sm btn-info" ng-click="SelectedDateTime()">Today</button>
Javascript
$scope.today = function() {
$scope.dt = new Date();
};
$scope.today();
$Scope.mytime = new Date();
$scope.changed = function () {
$log.log('Time changed to: ' + $scope.mytime);
};
$scope.clear = function() {
$scope.mytime = null;
};
$Scope.SelectedDateTime = function()
{
var SelectedDateTime = $scope.dt +''+$scope.mytime;
}
2 ответа
Вы не можете объединять или пытаться добавить объекты даты, как если бы они были числами.
То, что вы в основном пытаетесь сделать, это
new Date() +" "+ new Date()
Вставьте эту строку в консоль браузера, и вы увидите что-то вроде:
"Thu Mar 05 2015 21:54:37 GMT-0500 (Eastern Standard Time) Thu Mar 05 2015 21:54:37 GMT-0500 (Eastern Standard Time)"
Вам нужно работать с ними как с объектами Date и использовать соответствующие методы-прототипы Date для манипулирования ими.
Вот некоторые из методов, которые вам понадобятся:
Date.prototype.getHours()
Date.prototype.setHours()
Выше предполагается, что вы на самом деле пытаетесь создать новый DateTime. Если нет, не ясно, каковы ваши ожидаемые результаты
Ссылка: MDN Date.prototype Документы
Я решил эту проблему, используя одну и ту же модель ng для Datepicker и Timepicker.
<input type="text" ng-model="myDateModel" datepicker-options="dateOptions" ... />
<uib-timepicker ng-model="myDateModel"...></uib-timepicker>
Надеюсь, это вам тоже поможет! Удачи!