Подтвердить что ты не робот

AngularJS получает форматированную дату в ng-модели

У меня есть следующий текстовый ввод, заполненный значением модели в метке времени:

<input type="datetime" ng-model="workerDetail.dateOfBirth"  class="form-control" id="date_of_birth" />

Он отображает значение на входе как заданную метку времени.

Я хотел бы преобразовать значение, которое отображается во вводе в форматированную дату (YYYY/MM/DD), но в модели всегда должна быть отметка времени.

Я попытался сделать это следующим образом:

{{workerDetail.dateOfBirth | date:'MMM'}}

Но без везения.

Спасибо за любой совет.

4b9b3361

Ответ 1

Вы можете попробовать фильтр

HTML

<input type="datetime" ng-model="mydateOfBirth"  class="form-control" id="date_of_birth" />

Контроллер JS

$scope.$watch('mydateOfBirth', function (newValue) {
    $scope.workerDetail.dateOfBirth = $filter('date')(newValue, 'yyyy/MM/dd'); 
});

$scope.$watch('workerDetail.dateOfBirth', function (newValue) {
    $scope.mydateOfBirth = $filter('date')(newValue, 'yyyy/MM/dd'); 
});

Ответ 2

Вы также можете указать часовой пояс следующим образом:

$scope.$watch('workerDetail.dateOfBirth', function (newDate) {
    $scope.workerDetail.dateOfBirth = $filter('date')(newDate, 'HH:mm', 'UTC'); 
});

Ответ 3

Попробуйте этот код, чтобы получить дату Только (дд/мм/гггг)

HTML

<div class="col-lg-3">
<input type="date" name="dob" class="input-lg form-group" ng-model='dob'>
</div>

Angularjs

app.controller('myctrl',function($scope, $http,$window,$filter) {
$scope.sent=function(){
    $scope.date = $filter("date")($scope.dob, 'dd-MM-yyyy');
    alert($scope.date);
}})