【问题标题】:How to convert date format in angular bootstrap date picker如何在角度引导日期选择器中转换日期格式
【发布时间】:2016-08-20 06:44:34
【问题描述】:

我正在使用角度日期选择器。当用户选择日期时,我想过滤结果。

我已将 ng-change 添加到日期选择器中,它正在检测更改并传递日期值。但是格式不正确。

<uib-datepicker ng-model="dt" ng-change="dateSelected('{{dt}}')" class="well well-sm" datepicker-options="options"></uib-datepicker>

控制器

 $scope.dateSelected = function(passedDate){
    console.log('Date Selected ' + passedDate);
}

这给了

2016-04-26T12:18:56.794Z

如何转换成

18 March, 2016

或类似的东西。

我通过根据文档更新 $scope.options 尝试了几个选项,但没有任何效果。

【问题讨论】:

    标签: javascript angularjs date datepicker angular-bootstrap


    【解决方案1】:

    html 中的日期选择器

     <div class="input-group ui-datepicker">
                                    <input type="text"
                                           class="form-control date"
                                           datepicker-popup="{{format}}"
                                           ng-model="dt"
                                           is-open="opened"
                                           min-date="minDate"
                                           max="'2015-06-22'"
                                           ng-readonly="true"
                                           datepicker-options="dateOptions"
                                           date-disabled="disabled(date, mode)"
                                           ng-required="true"
                                           close-text="Close" style="cursor:auto;">
                                    <span class="input-group-addon" ng-click="open($event)"><i class="fa fa-calendar"></i></span>
                                </div>
    

    设置格式为:

     $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
        $scope.format = $scope.formats[0];
    
     $scope.dateOptions = {
            formatYear: 'yy',
            startingDay: 1
        };
    

    【讨论】:

    • HTML 是这样的 -
    • 不管是什么HTML,日期格式在如何使用上都是类似的。你有相同的模型和方法来改变格式
    【解决方案2】:

    试试这个:

    html 应该是这样的,你不需要在 ng-change 中使用 {{}}

    <uib-datepicker ng-model="dt" ng-change="dateSelected(dt)" class="well well-sm" datepicker-options="options"></uib-datepicker>
    
    var monthArray = ["January", "February", "March", "April",....];
    

    而JS应该是这样的

    console.log($scope.dt.getDate()+', '+monthArray[$scope.dt.getMonth()]+', '+$scope.dt.getFullYear());
    

    【讨论】:

    • 这不起作用,当我用passedDate替换newDate时,它给出错误passedDate.getMonth is not a function
    • 编辑了我的答案尝试使用 $scope.dt。 getMonth 而不是使用passedDate.getMonth
    猜你喜欢
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    相关资源
    最近更新 更多