AngularJS在ng-model中获取格式化日期

时间:2014-10-21 12:25:43

标签: javascript angularjs date

我在时间戳中按照模型值填充了以下文本输入:

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

它在输入中显示给定时间戳的值。

我想将输入中可见的值转换为格式化日期(YYYY / MM / DD),但在模型中应始终作为时间戳。

我试着这样做:

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

但没有运气。

感谢您的任何建议。

3 个答案:

答案 0 :(得分:30)

您可以尝试过滤器

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

答案 1 :(得分:5)

您还可以指定这样的时区:

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

答案 2 :(得分:1)

尝试此代码仅获取日期(年/月/日)

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