2014-10-21 15 views
21

formattati Ho seguito l'immissione di testo riempito da valore del modello in timestamp:AngularJS vengono date in ng-modello

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

Esso mostra il valore in ingresso come data timestamp.

Vorrei convertire il valore che è visibile in input in data formattata (AAAA/MM/GG), ma nel modello dovrebbe essere sempre come timestamp.

ho cercato di farlo in questo modo:

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

Ma senza fortuna.

Grazie per qualsiasi consiglio.

risposta

30

Si può provare un filtro

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

Il formato deve essere: '/ dd yyyy/MM' – RolandoCC

+0

In realtà, questa risposta mi ha causato un problema in un esempio più sofisticato, così sono andato per quello di Sergio Toledo e tutto è andato bene. – Yulian

5

È inoltre possibile specificare un fuso orario come questo:

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

provare questo codice a Ottieni solo una data (gg/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); 
}}) 
Problemi correlati