【问题标题】:Format date on bootstrap datetimepicker在引导程序 datetimepicker 上格式化日期
【发布时间】:2017-07-29 06:05:26
【问题描述】:

我正在使用 Bootstrap 3 日期/时间选择器 (https://github.com/Eonasdan/bootstrap-datetimepicker),但我遇到了问题 格式化日期

<input type="text" id="fmEndDate" class="form-control input-sm"
                           datetimepicker
                           format="DD-MM-YYYY hh:mm"
                           ng-model="workRequest.EndDate"
                           placeholder="..."
                           name="fmEndDate"
                           required                               
                           ng-disabled="isDisabled">

但该值显示为 MM/DD/YYYY hh:mm AM

我想要 31-12-2017 23:59 作为除夕时间戳

这是我的指令

"use strict";
angular.module("datetimepicker", [])
.provider("datetimepicker", function () {
  var defaultOptions = { };

this.setOptions = function (options) {
  defaultOptions = options;
};

this.$get = function () {
  return {
    getOptions: function () {
      return defaultOptions;
    }
  };
};
})
.directive("datetimepicker", [
"$timeout",
"datetimepicker",
function ($timeout,datetimepicker) {

  var defaultOptions = datetimepicker.getOptions();

  return {
    require : "?ngModel",
    restrict: "AE",
    scope   : {
      datetimepickerOptions: "@"
    },
    link : function ($scope, $element, $attrs, ngModelCtrl) {
      var passedInOptions = $scope.$eval($attrs.datetimepickerOptions);
      var options = jQuery.extend({}, defaultOptions, passedInOptions);

      $element
        .on("dp.change", function (e) {
          if (ngModelCtrl) {
            $timeout(function () {
                ngModelCtrl.$setViewValue(e.target.value);
            });
          }
        })
        .datetimepicker(options);

      function setPickerValue() {
        var date = options.defaultDate || null;

        if (ngModelCtrl && ngModelCtrl.$viewValue) {
          date = ngModelCtrl.$viewValue;
        }

        $element
          .data("DateTimePicker")
          .date(date);
      }

      if (ngModelCtrl) {
        ngModelCtrl.$render = function () {
          setPickerValue();
        };
      }

      setPickerValue();
    }
  };
}
]);

有什么想法吗?

【问题讨论】:

  • 尝试将格式从 format="DD-MM-YYYY hh:mm" 更改为 format="DD-MM-YYYY HH:mm"。请参阅docs 了解更多信息。
  • @Megajin 不符合 angular 和 datetimepicker 的文档。 hh 将显示 12 小时制。 HH 将显示 24 小时制。
  • 对不起,我不小心删除了我的评论。他说他正在使用 Bootstrap3 datetimepicker,它的作用与时刻格式不同。你可以看看这个例子:eonasdan.github.io/bootstrap-datetimepicker

标签: javascript angularjs date bootstrap-datetimepicker


【解决方案1】:

bootstrap3 docs 所示,您可以在 JavaScript 中定义自定义格式:

<div class="container">
    <div class="row">
        <div class='col-sm-6'>
            <div class="form-group">
                <div class='input-group date' id='datetimepicker3'>
                    <input type='text' class="form-control" />
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-time"></span>
                    </span>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            $(function () {
                $('#datetimepicker3').datetimepicker({
                    format: 'your desired Formatting style'
                });
            });
        </script>
    </div>
</div>

更简单:

  $("#fmEndDate").datetimepicker({format: 'dd-mm-yyyy hh:ii'});

旁注:注意日期/时间格式:

对于 AngularJS HH 格式将导致小时为 00-23。在 Bootstrap3 中,您也使用 HH 将导致小时为 01-12。

我强烈建议您使用像 MomentJS 这样的库,它正在为您完成麻烦的工作。

问候, 大金

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-05-01
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多