2016-03-04 47 views
2

我有一个HTML5页面中的某些日期类型输入的表单,我希望通过Angular获得该值。它需要一个非预期的格式,如screenshot所示。输入类型是日期而不是日期时间。不是预期的日期格式 - ng和日期输入类型之间的差异

我测试发送此表格,我收到正确的预计日期,所以问题是如何在angulare得到正确的日期?

谢谢你的帮助!

下面是代码:

<fieldset> 

       <div class="form-group"> 
        <label for="start_date" class="col-sm-2 control-label">Date de début</label> 
        <div class="col-sm-10"> 
         <input type="date" name="start_date" ng-model="start_date" class="form-control" required="required"> 
        </div> 
       </div> 

       <div class="form-group"> 
        <label for="end_date" class="col-sm-2 control-label">Date de fin</label> 
        <div class="col-sm-10"> 
         <input type="date" name="end_date" ng-model="end_date" class="form-control" required="required"> 
        </div> 
       </div> 

       <div class="form-group"> 
       <label for="input" class="col-sm-2 control-label">Type de contact:</label> 
       <div class="col-sm-2"> 
        <select ng-model="type" id="input" class="form-control" required="required"> 
         <option value="all">Tous</option> 
         <option value="fiche">Demande de renseignements (DR)</option> 
         <option value="telephone">Demande de rappel</option> 
         <option value="contact">Général</option> 
        </select> 
       </div> 
       </div> 

       <div class="form-group"> 
       <div class="col-sm-10 col-offset-2"> 
        <button type="submit" ng-click="getcontacts(start_date, end_date, type);" class="btn btn-primary">Lancer la recherche</button> 
       </div> 
       </div> 


       {{ start_date}} {{end_date}} {{ type }} 
+1

您可以使用moment.js格式化日期,这是一个非常强大的解决方案 –

+0

不清楚问题所在。 – charlietfl

回答

0

你输入的类型是“日期”,让你的模型,你可以键入日期。如果您想获取日期的字符串表示形式,则可以使用$ filter服务。事情是这样的:

https://jsfiddle.net/relferreira/y7y5n62c/2/

angular.module('app', []); 

angular.module('app') 
    .controller('MainController', mainController); 

mainController.$inject = ['$filter']; 

function mainController($filter){ 

    var vm = this; 

    vm.date = new Date(); 
    vm.formatedDate = ''; 
    vm.selectDate = selectDate; 

    function selectDate(){ 
    vm.formatedDate = $filter('date')(vm.date); 
    } 

} 

HTML:

<div data-ng-app="app"> 

    <div data-ng-controller="MainController as mainVm"> 
    <input type="date" data-ng-model="mainVm.date" /> 
    <button data-ng-click="mainVm.selectDate()">Select</button> 
    {{mainVm.formatedDate}} 
    </div> 

</div> 
+0

谢谢你的回答。为了避免必须点击选择的按钮,有没有办法将我现有的控制器转换为格式? –

0

感谢勒南和发现我的问题终于同AngularJS - convert dates in controller

我在做下面的转换我控制器注入内$ filter后

它作为一种魅力,再次感谢!

icademieApp.controller('contactsCtrl', ['$scope', '$filter', 'contactService', function ($scope, $filter, contactService) { 

$scope.getcontacts = function (start_date, end_date, type){   

     console.log(start_date + ' & ' + end_date ); 

     start_date = $filter('date')(start_date, "yyyy-MM-dd"); 
     end_date = $filter('date')(end_date, "yyyy-MM-dd"); 

     console.log(start_date + ' & ' + end_date ); 

     ....   
} 

}]);

第一个日志:

星期二2016年3月1日00:00:00 GMT + 0100(巴黎,马德里)&周五2016年3月4日00:00:00 GMT + 0100(巴黎,马德里)

第二日志:

2016年3月1日2016年3月4日&

+0

不错,它帮助!如果您愿意,请将其标记为正确的答案! –

+0

没有足够的声望投票! :) –