2016-03-04 39 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

沒有足夠的聲望投票! :) –

相關問題