我已经开始使用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 = {};
});
答案 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');
});
});