选择后的datetime-local不同格式

时间:2017-03-04 12:00:17

标签: javascript html angularjs date

给定的是具有<input type='datetime-local'>输入的离子应用程序,它在Android系统上运行。问题是在用户选择日期后输入具有不同的格式。 Start是在用户选择了日期后,Ende是默认格式。我已尝试添加minmaxstep属性。

没有毫秒的格式是首选格式。

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>

3 个答案:

答案 0 :(得分: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);
     }
   }
})

答案 1 :(得分:0)

使用日期对象,如

www.website.com

参考此plunker

答案 2 :(得分: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')
相关问题