2016-04-03 77 views
0

我从控制器的ng-model中获取日期值。我想将日期格式设置为10-22-2013但是在输出中,我获得日期格式为10/22/2013如何在`ng-model`中设置日期对象的日期格式

什么是格式化日期的正确方法?

JS:

angular.module('dateInputExample', []) 
    .controller('DateController', ['$scope', function($scope) { 
     $scope.example = { 
     value: new Date(2013, 9, 22) 
     }; 
    }]); 

HTML:

<form name="myForm" ng-controller="DateController as dateCtrl"> 
    <label for="exampleInput">Pick a date </label> 
    <input type="date" id="exampleInput" name="input" ng-model="example.value" 
     placeholder="yyyy-MM-dd" min="2013-01-01" max="2013-12-31" required /> 
    <div role="alert"> 
    <span class="error" ng-show="myForm.input.$error.required"> 
     Required!</span> 
    <span class="error" ng-show="myForm.input.$error.date"> 
     Not a valid date!</span> 
    </div> 

</form> 

Live Demo

+0

在Punker文本框中的值显示为'10-22-2013' 。不是'10/22/2013'。这不是你想要的吗? – Roy

+0

是的罗伊。如果你有任何不同的答案,请在这里发帖 – user2024080

回答

2

使用纯HTML5没有回答你的问题。请参阅此link

有没有办法可以改变格式

我们有电线格式和 浏览器的显示格式的区分。

线格式的HTML5日期输入规范1指 RFC3339规范2,它指定一个全日期格式等于 到:YYYY-MM-DD。有关更多 详细信息,请参阅RFC3339规范的第5.6节。

演示文稿格式浏览器不受限制地显示日期输入的 。在撰写本文时,Chrome拥有最广泛的日期 支持[3]。它使用用户的本地日历 格式显示日期选择器。 Opera(v10.6 +)还会显示日期选择器,但会以线格式显示日期 。其他浏览器(如Firefox 44.0.2和 Internet Explorer 9/10/11)显示文本输入字段,其格式为 。

参考http://www.w3.org/TR/html-markup/input.date.html http://tools.ietf.org/html/rfc3339 https://plus.google.com/102860501900098846931/posts/hTcMLVNKnec

我建议使用angular-ui。它有一个整洁的模块负载,使一切都容易角度。

视图中的标记应该是这样的:

<p class="form-group"> 
    <label>Result</label> 
    <input type="text" class="form-control" uib-datepicker-popup="{{format}}" ng-model="date" /> 
</p> 

和控制器上:

angular.module('ui.bootstrap.demo').controller('DateParserDemoCtrl', function ($scope, uibDateParser) { 
    $scope.format = 'MM-dd-yyyy'; 
    $scope.date = new Date(); 
}); 
相关问题