在 Angular Material 中更改 md-datepicker 的 return 值
Changing the return value of md-datepicker in Angular Material
我已经开始使用Angular-Material。当我使用日期选择器时,返回的日期值不仅仅是日期。它有时间和其他信息如下
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 = {};
});
试试这个
$scope.dateValue = "2016-05-08T18:30:00.000Z"
var split_date = $scope.dateValue.split('T');
$scope.date = split_date[0];
如果你的html:
<md-datepicker ng-model="distributionOV.SelectFromDate" md-placeholder="Enter date"></md-datepicker>
通过angular方式:
.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
,当您结束日期选择时,它应该具有您选择的值。
md-datepicker 正在将日期解析到您的模型中,通过 "md-model" 属性绑定。您可以通过 mdDateLocalProvider 修改解析/格式化行为。在 https://material.angularjs.org/latest/api/service/$mdDateLocaleProvider
查看文档
由于我可能没有 100% 正确地回答您的问题,您还可以在解析日期绑定到您的范围模型后通过使用 md-datepicker 指令的 "ng-change" 属性注册一个处理程序来处理它.例如
<md-datepicker ng-model="ctrl.yourDateModel"
ng-change="ctrl.yourDateStringModel = ctrl.formatDate(ctrl.yourDateModel)">
我尝试了以上所有方法,但由于我在 angular 方面缺乏知识,我惨遭失败。我得到的输入是我的 Web Api 控制器。我所做的是拆分从 T 获得的日期值。
string[] newdate = data.date.Split(T);
然后我将它分配给另一个字符串变量以获得我想要的拆分值
string finaldate = newdate[0];
有了这个我得到了像“2016-05-17”这样的日期
我不确定这对什么地方有帮助,或者这种做法是否可以接受。但我希望有人能从中受益,所以我发布了这个。也感谢帮助回答这个问题的人。
app.controller('AppCtrl', function ($scope, $filter,) {
$scope.$watch("dateValue", function(newValue, oldValue){
$scope.dateValue= $filter('date')(newValue, 'dd-MM-yyyy');
});
});
我已经开始使用Angular-Material。当我使用日期选择器时,返回的日期值不仅仅是日期。它有时间和其他信息如下
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 = {};
});
试试这个
$scope.dateValue = "2016-05-08T18:30:00.000Z"
var split_date = $scope.dateValue.split('T');
$scope.date = split_date[0];
如果你的html:
<md-datepicker ng-model="distributionOV.SelectFromDate" md-placeholder="Enter date"></md-datepicker>
通过angular方式:
.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
,当您结束日期选择时,它应该具有您选择的值。
md-datepicker 正在将日期解析到您的模型中,通过 "md-model" 属性绑定。您可以通过 mdDateLocalProvider 修改解析/格式化行为。在 https://material.angularjs.org/latest/api/service/$mdDateLocaleProvider
查看文档由于我可能没有 100% 正确地回答您的问题,您还可以在解析日期绑定到您的范围模型后通过使用 md-datepicker 指令的 "ng-change" 属性注册一个处理程序来处理它.例如
<md-datepicker ng-model="ctrl.yourDateModel"
ng-change="ctrl.yourDateStringModel = ctrl.formatDate(ctrl.yourDateModel)">
我尝试了以上所有方法,但由于我在 angular 方面缺乏知识,我惨遭失败。我得到的输入是我的 Web Api 控制器。我所做的是拆分从 T 获得的日期值。
string[] newdate = data.date.Split(T);
然后我将它分配给另一个字符串变量以获得我想要的拆分值
string finaldate = newdate[0];
有了这个我得到了像“2016-05-17”这样的日期
我不确定这对什么地方有帮助,或者这种做法是否可以接受。但我希望有人能从中受益,所以我发布了这个。也感谢帮助回答这个问题的人。
app.controller('AppCtrl', function ($scope, $filter,) {
$scope.$watch("dateValue", function(newValue, oldValue){
$scope.dateValue= $filter('date')(newValue, 'dd-MM-yyyy');
});
});