如何以特定格式格式化md-datepicker的模型变量。我尝试了$mdDateLocaleProvider
的配置,但它只是格式化了日期选择器的显示值,而不是模型值。请查看此codepen或以下代码:
HTML:
<div ng-app="MyApp" ng-controller="AppCtrl">
<md-content>
<md-datepicker ng-model="myDate" md-placeholder="Enter date"></md-datepicker>
</md-content>
<p>Date not formatted:</p>
{{myDate}}
</div>
JS:
angular.module('MyApp')
.controller('AppCtrl', function($scope) {
$scope.myDate = new Date();
})
.config(function($mdDateLocaleProvider) {
$mdDateLocaleProvider.formatDate = function(date) {
return moment(date).format('YYYY-MM-DD');
};
});
答案 0 :(得分:1)
您应该使用角度'日期'过滤器
{{myDate | date:'yyyy-MM-dd'}}
有关更多格式和其他信息,请参阅:https://docs.angularjs.org/api/ng/filter/date
答案 1 :(得分:0)
var dateFormat = function(date) {
var date = date.getDate();
var month = date.getMonth();
var year = date.getFullYear();
var formattedDate = (date < 10 ? ('0' + date) : date) + '/' + (month < 10 ? ('0' + month) : month) + '/' + year;
}
或者
return date.getDate() + "/" +date.getMonth()+1 + "/" + date.getFullYear();
将给你2016年1月8日。 (你需要+1 getMonth()因为1月是0)。这是你在找什么?
编辑:功能
答案 2 :(得分:0)
模型对象始终是一个javascript日期对象,您只能在渲染时更改表示(例如,像您一样使用矩形,或者已经提到的角度日期过滤器)。
也许你应该在javascript和JSON中阅读日期格式:The “right” JSON date format
但是,您可以在将日期对象发送到服务器/后端之前对其进行转换。
如果您将REST与$resource
或$http
一起使用,则可以使用angular-http-transform-date之类的内容,或者通过向$httpProvider
添加请求转换器来自行执行此操作。
有一个blog post显示了如何为响应执行此操作,但同样的机制适用于请求。