Javascript 如何在ng模型中使用日期过滤器?

Javascript 如何在ng模型中使用日期过滤器?,javascript,angularjs,Javascript,Angularjs,这似乎应该很简单,但我一直没能理解。我想将我的日期字符串转换为日期对象,并过滤它的显示方式 我有一个简单的角度应用程序和控制器 myApp.controller('myAppCtrl', function($scope) { $scope.MyDate = Date("2014-09-23T15:26:49.1513672Z"); }) 我从服务器返回了JSON,我使用的日期是上述格式的字符串 从关于 日期未格式化,但如下所示: 2014年9月24日星期三07:40:02 GMT-070

这似乎应该很简单,但我一直没能理解。我想将我的日期字符串转换为日期对象,并过滤它的显示方式

我有一个简单的角度应用程序和控制器

myApp.controller('myAppCtrl', function($scope) {
   $scope.MyDate = Date("2014-09-23T15:26:49.1513672Z");
})
我从服务器返回了JSON,我使用的日期是上述格式的字符串

从关于

日期未格式化,但如下所示: 2014年9月24日星期三07:40:02 GMT-0700(太平洋夏令时)

最后,我希望将输入文本框绑定到此值,并按如下方式对其进行过滤:

<input type="text" class="form-control" ng-model="MyDatee | date:'medium'"/>

我希望一旦我得到了简单的版本工作,我可以得到我的文本输入解决实际问题


这里有一个

对于第一部分,请改用
newdate()

$scope.MyDate = new Date("2014-09-23T15:26:49.1513672Z");
其次,您可以创建一个指令,以在
输入中格式化模型(修改自)

标记类似于:

<input type="text" class="form-control" ng-model="MyDate" formatted-date format="medium" />
请参阅更新的

但您不能使用筛选器内部输入来格式化内部输入的日期。请参见此处


在$scope.MyDate中,请将其替换为

$scope.MyDate = new Date("2014-09-23T15:26:49.1513672Z");

您可以像这样更改日期格式


这太棒了。是否也可以使用扩展来验证数据?
<input type="text" class="form-control" ng-model="MyDate" formatted-date format="medium" />
angular.module('myApp').directive('formattedDate', function(dateFilter) {
  return {
    require: 'ngModel',
    scope: {
      format: "="
    },
    link: function(scope, element, attrs, ngModelController) {
      ngModelController.$parsers.push(function(data) {
        //convert data from view format to model format
        return dateFilter(data, scope.format); //converted
      });

      ngModelController.$formatters.push(function(data) {
        //convert data from model format to view format
        return dateFilter(data, scope.format); //converted
      });
    }
  }
});
 $scope.MyDate = new Date("2014-09-23T15:26:49.1513672Z");
$scope.MyDate = new Date("2014-09-23T15:26:49.1513672Z");