在Angular Material中更改md-datepicker的返回值

时间:2016-05-13 08:25:31

标签: angularjs datepicker angular-material

我已经开始使用Angular-Material。当我使用datepicker时,返回日期值不仅仅是日期。它有时间和其他信息,如下面

2016-05-08T18:30:00.000Z

我只需要日期而不提供其他信息。有没有办法做到这一点

这是代码

<md-datepicker ng-model="data.Date" md-placeholder="Enter date"></md-datepicker>

控制器代码

 app.controller('cntrlr',function($scope){
    $scope.data = {};

    });

5 个答案:

答案 0 :(得分:2)

md-datepicker正在将日期解析到您的模型中,通过&#34; md-model&#34;属性。您可以通过mdDateLocalProvider修改解析/格式化行为。查看https://material.angularjs.org/latest/api/service/$mdDateLocaleProvider

上的文档

由于我可能没有100%正确地得到您的问题,您也可以通过使用&#34; ng-change&#34;注册处理程序来处理绑定到您的范围模型之后的解析日期。 md-datepicker指令的属性。 E.g。

<md-datepicker ng-model="ctrl.yourDateModel"
               ng-change="ctrl.yourDateStringModel = ctrl.formatDate(ctrl.yourDateModel)">

答案 1 :(得分:1)

<强> Demo here

如果你的html:

<md-datepicker ng-model="distributionOV.SelectFromDate" md-placeholder="Enter date"></md-datepicker>

以角度方式:

.controller('appCtrl', function($scope, $filter) {
    $scope.distributionOV={};

    $scope.$watch('distributionOV', function(newVal, oldVal) {
      if (!newVal.SelectFromDate) {
        return false;
      }
      var date = $filter('date')(new Date(newVal.SelectFromDate), "yyyy-MM-dd");
      alert(date);
    },true);
  });

注意myDate绑定到$scope,当您结束日期选择时,它应该具有您选择的值。

答案 2 :(得分:1)

我尝试了以上所有的事情,由于我缺乏角度的知识,我成功地失败了。我得到的输入是我的Web Api控制器。我所做的是将我从T获得的日期值分开。

string[] newdate = data.date.Split(T);

然后我将它分配给另一个字符串变量以获得我想要的分割值

string finaldate = newdate[0];

有了这个,我得到的日期就像&#34; 2016-05-17&#34;

我不确定这会有什么帮助,或者这种做法是可以接受的。但我希望有人可以从中受益,所以我发布了这个。感谢那些帮助解决这个问题的人。

答案 3 :(得分:0)

试试这个

$scope.dateValue = "2016-05-08T18:30:00.000Z"
var split_date = $scope.dateValue.split('T');
$scope.date = split_date[0];

答案 4 :(得分:-1)

    app.controller('AppCtrl', function ($scope, $filter,) { 

  $scope.$watch("dateValue", function(newValue, oldValue){  
     $scope.dateValue= $filter('date')(newValue, 'dd-MM-yyyy');
  });

});