datetime-本地不同格式选择后 [英] datetime-local different format after selecting

查看:130
本文介绍了datetime-本地不同格式选择后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定的是一个离线应用程序,在android系统上运行< input type ='datetime-local'> 输入。问题是用户选择日期后输入的格式不同。 开始是在用户选择日期之后, Ende 是默认格式。我已经尝试添加 min max step 属性。

Given is an ionic app with <input type='datetime-local'> inputs which runs on an android system. The problem ist that the inputs have different formats after the user selects a Dates. Start is after the user selected a date and Ende is the default formatting. I already tried to add the min, max and step attribute.

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

The format without the miliseconds is the preferred one.

控制器

$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>


推荐答案

对于任何有兴趣的人,我写了一个解决我的工厂问题。

For anyone interested, i wrote a factory that solves my problem.

而不是像 $ scope.event.start = new Date()创建一个日期,只需使用 $ scope.event.start = Tools.currentDate();

Instead of creating a date like $scope.event.start = new Date() just use $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);
     }
   }
})

这篇关于datetime-本地不同格式选择后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆