【问题标题】:Angular Date Format Not Working [duplicate]角度日期格式不起作用[重复]
【发布时间】:2016-10-08 09:36:33
【问题描述】:

我有一个这样的 HTML。

<select name="paymentList" class="form-control" tabindex=""
                        ng-focus="true"
                        ng-disabled="!showRoomPaymentList"
                        move-focus-by-enter-key
                        ng-model="paymentList"
                        ng-options="s.FromDate | date: 'dd-MM-yyyy' + ' To ' + s.ToDate|date:'dd-MM-yyyy'  for s in showRoomPaymentList track by s.PaymentDurationId"
                        ng-required="true">
                    <option value="">--Select Payment Duration--</option>
                </select>

输出如下: 01-06-2016 至 2016-06-30T00:00:00 但我想要这样 2016 年 1 月 6 日至 2016 年 6 月 30 日

第二部分日期格式不起作用如何解决?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    解决方案是在 () 中像 (anydate|date:'yyyy') 一样打包“带过滤器的子表达式”。

    所以,在你的情况下:

    s.FromDate | date: 'dd-MM-yyyy' + ' To ' + s.ToDate|date:'dd-MM-yyyy' 
    

    改成

    (s.FromDate | date: 'dd-MM-yyyy') + ' To ' + (s.ToDate|date:'dd-MM-yyyy')
    

    http://jsfiddle.net/jsggspm0/

    【讨论】:

    • 谢谢。 khajaamin 是的,这对我来说很好。
    【解决方案2】:

    这可能解决了您的问题,但您必须使用格式函数在控制器中转换日期。

    如果需要任何更改,请让我知道 sn-p 是否有效。

    var app = angular.module('app', []);
    
    
    app.controller('Test', function($scope,$filter) {
    
      $scope.selected = null;
      $scope.items = [{
        name: 'a',
        value: 1,
        something: "xyz",
    from:"2016-06-30T00:00:00",
    to:"2016-06-30T00:00:00"
      }, {
        name: 'b',
        value: 2,
        something: "xyz",
    from:"2016-06-30T00:00:00",
    to:"2016-06-30T00:00:00"
    
      }, {
        name: 'c',
        value: 3,
        something: "xyz",
    from:"2016-06-30T00:00:00",
    to:"2016-06-30T00:00:00"
    
      }]
    
    
      $scope.show = function() {
        alert("selectec " + $scope.selected.name + ' with value ' + $scope.selected.value);
      }
    
      $scope.format = function(i) {
        return  $filter('date')(i.from, "dd/MM/yyyy") + " to "+$filter('date')(i.to, "dd/MM/yyyy");
      };
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    
    <html ng-app="app">
    
    <body>
      <div ng-controller="Test">
        <select data-ng-options="i as format(i) for i in items" ng-model="selected">
        </select>
        <button ng-click="show()">press</button>
      </div>
    </body>
    
    </html>

    【讨论】:

      猜你喜欢
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多