web-dev-qa-db-fra.com

AngularJS obtient la date formatée dans le modèle ng

J'ai la saisie de texte suivante remplie par la valeur du modèle dans l'horodatage:

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

Il affiche la valeur en entrée sous forme d'horodatage donné.

Je voudrais convertir la valeur qui est visible en entrée en date formatée (AAAA/MM/JJ), mais dans le modèle doit toujours être comme horodatage.

J'ai essayé de le faire de cette façon:

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

Mais sans chance.

Merci pour tout conseil.

21
redrom

Vous pouvez essayer un filtre

HTML

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

Contrôleur 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'); 
});
30
blackmind

Vous pouvez également spécifier un fuseau horaire comme celui-ci:

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

Essayez ce code pour obtenir une date uniquement (jj/mm/aaaa)

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);
}})
1
vignesh