2017-03-04 117 views
0

鑑於是離子應用與<input type='datetime-local'>輸入在Android系統上運行。問題在於用戶選擇日期後輸入具有不同的格式。 Start是在用戶選擇日期之後,並且Ende是默認格式。我已經嘗試添加min,maxstep屬性。datetime-local不同的格式選擇後

沒有毫秒的格式是首選格式。

enter image description here

的控制器

$scope.event = {}; 
// Default dates 
$scope.event.start = new Date(); 
$scope.event.end = new Date(); 
$scope.event.end.setHours($scope.event.start.getHours() + 2); 

HTML部分

<label class="item item-input underlinedInput equal-padding "> 
    <span class="input-label">Start</span> 
    <input type="datetime-local" placeholder="Start" ng-model="event.start" step="1" min="1900-01-01T00:01:00" max="2900-01-01T23:59:59"> 
</label> 
<label class="item item-input underlinedInput equal-padding "> 
    <span class="input-label">Ende</span> 
    <input type="datetime-local" placeholder="Ende" ng-model="event.end" step="1" min="1900-01-01T00:01:00" max="2900-01-01T23:59:59"> 
</label> 
+0

,如果你使用一個明確的格式,這將有助於。 03/04/2017是4月3日的大部分,但3月4日的一些。 – RobG

回答

0

任何有興趣,我寫了一個工廠,解決了我的問題。

而是創造一個像$scope.event.start = new Date()日期的只是使用$scope.event.start = Tools.currentDate();

.factory('Tools', function() { 
    return { 
     utcDate: function (date) { 
      var d = new Date(date.replace(' ', 'T')); 
      d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000); 
      return d; 
     }, 
     currentDate: function() { 
      var d = new Date(); 
      var year = d.getFullYear(); 
      var month = this.leadingZero(d.getMonth()); 
      var day = this.leadingZero(d.getDate()); 
      var hour = this.leadingZero(d.getHours()); 
      var minutes = this.leadingZero(d.getMinutes()); 

      return this.utcDate(year+"-"+month+"-"+day+"T"+hour+":"+minutes+":00"); 
    }, 
    leadingZero: function(number){ 
     return ("0"+number).substr(-2,2); 
    } 
    } 
}) 
0

使用日期對象喜歡

$scope.event.start = new Date(2010, 11, 28, 14, 57); 

請參閱本plunker

0

你可以使用瞬間JS,你將有一個更好的控制應用程序中的日期操作。 moment js docs

var startDate = moment().format('DD/MM/YYYY, HH:MM A'); 
var endDate = moment().add(2, 'hours').format('DD/MM/YYYY, HH:MM A')