2014-10-21 12 views
21

Ich habe folgende Texteingabe durch Modellwert in Zeitstempel gefüllt:AngularJS erhalten formatiert Datum in ng-Modell

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

Es zeigt Wert in der Eingabe als gegebener Zeitstempel.

Ich möchte Wert, der in Eingabe sichtbar ist, in formatiertes Datum (YYYY/MM/DD) konvertieren, aber im Modell sollte immer als Zeitstempel sein.

Ich habe versucht, es auf diese Weise zu tun:

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

Aber ohne Glück.

Vielen Dank für jeden Hinweis.

Antwort

30

können Sie versuchen, einen Filter

HTML

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

-Controller 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'); 
}); 
+0

Das Format sollte sein: 'yyyy/MM/dd' – RolandoCC

+0

In der Tat, diese Antwort hat mir eine Störung in einem anspruchsvolleren Beispiel, also ging ich für Sergio Toledo und alles wurde gut. – Yulian

5

Sie können auch eine Zeitzone wie folgt angeben:

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

Dieser Code Versuchen Sie, Holen Sie sich ein Datum Nur (TT/MM/JJJJ)

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); 
}}) 
Verwandte Themen