2017-03-08 148 views
0

我现在用的是引导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(); 
    } 
    }; 
} 
]); 

有什么想法?

+0

尝试从'格式更改格式= “DD-MM-YYYY HH:MM”''以格式= “DD-MM-YYYY HH:MM”'。有关更多信息,请参阅[文档](https://docs.angularjs.org/api/ng/filter/date)。 – user3366016

+0

@Megajin不是根据角度和[datetimepicker](http://momentjs.com/docs/#/displaying/format/)的文档。 'hh'将显示12小时制。 'HH'将显示24小时制。 – user3366016

+0

对不起,我删除了我的评论意外。他说他正在使用Bootstrap3 datetimepicker,它与矩阵格式有所不同。你可以看看这个例子:http://eonasdan.github.io/bootstrap-datetimepicker/ – Megajin

回答

0

正如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这样的库,它为你做了麻烦的工作。

问候, Megajin

+0

谢谢。我看了看jj,我想我会用这个控件替换datetimepicker,而不是https://indrimuska.github.io/angular-moment-picker/ –