当前位置: 首页 > 知识库问答 >
问题:

控制器中的AngularJSUIBootstrap Datepicker日期格式不正确

江阳羽
2023-03-14

我在html页面中使用日期选择器,如下所示:

HTML

  <div ng-controller="StartDateCtrl">
    <label class="control-label" for="startDate">  Date:</label>   
    <div class="row">
        <div class="col-md-6">
            <p class="input-group">
              <input type="text"  name="startDate" class="form-control" show-button-bar="true" datepicker-popup="yyyy-MM-dd" ng-model="startDate" is-open="opened" min="minDate" max="'22-06-2015'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close" />
              <span class="input-group-btn">
                <button class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
              </span>
            </p>
        </div>
    </div>
    </div> 

日期选择控制器

var StartDateCtrl= function ($scope) {
  $scope.today = function() {
    $scope.travelStartDate = new Date();
  };
  $scope.today();

  $scope.showWeeks = true;
  $scope.toggleWeeks = function () {
    $scope.showWeeks = ! $scope.showWeeks;
  };

  $scope.clear = function () {
    $scope.travelStartDate = null;
  };

  // Disable weekend selection
  $scope.disabled = function(date, mode) {
    return ( mode === 'day' && ( date.getDay() === 0 || date.getDay() === 6 ) );
  };

  $scope.toggleMin = function() {
    $scope.minDate = ( $scope.minDate ) ? null : new Date();
  };
  $scope.toggleMin();

  $scope.open = function($event) {
    $event.preventDefault();
    $event.stopPropagation();

    $scope.opened = true;
  };

  $scope.dateOptions = {
    'year-format': "'yy'",
    'starting-day': 1
  };

  //$scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'shortDate'];
  $scope.formats = ['yyyy-MM-dd'];
  $scope.format = $scope.formats[0];
};

主控制器

app.controller('UpdateShoppingBasketCtrl', ['$scope', 'ShoppingBasketFactory', '$location',
                                  function ($scope, ShoppingBasketFactory, $location) {


        alert('START DATE = '+ $scope.startDate );
}]);

提交网页时,我会在主窗体控制器中检索日期,但格式与日期选择器弹出窗口中显示的格式不同。选择后显示的格式为“2014年3月26日”。但是,在我的控制器中,我得到:2014年3月26日星期四00:00:00 GMT 0000(GMT标准时间)

请问,如何在控制器中获得显示的日期格式,而不是“2014年3月26日星期四00:00:00 GMT 0000(GMT标准时间)”????

共有3个答案

赵飞雨
2023-03-14

虽然这个问题已经得到了回答,但我将提供一个替代方案,以及一些更详细的信息。

该问题实际上是Angular 1.3.0 rc0及以后出现的错误。除了使用$filter之外,另一种解决方案是定义一个自定义指令,如DaveWM所描述的:

directive('datepickerPopup', function (){
  return {
    restrict: 'EAC',
    require: 'ngModel',
    link: function(scope, element, attr, controller) {
      //remove the default formatter from the input directive to prevent conflict
      controller.$formatters.shift();
    }
  }
})

这应该与使用$filter具有相同的效果。

平嘉熙
2023-03-14

您只需在angular filter方法中获取模型值,并提供所需的日期格式即可。还有一件事需要在控制器中定义$过滤器。

var dateValue =$filter('date')($scope.date, 'MM/dd/yyyy'),
王君墨
2023-03-14

可以使用日期过滤器设置日期格式。以下是演示:

<body ng-app="MyApp" ng-controller="MyController">
   <div>{{date}}</div>
</body>

脚本:

angular.module('MyApp',[])
       .controller('MyController',function($scope,$filter){
    $scope.date = $filter('date')(Date.now(),'yyyy-MM-dd'); 
});
 类似资料:
  • 问题内容: 我正在学习Go,并且正在尝试对日期时间进行JSON解组。 我有一个用C语言编写的程序生成的JSON,我正在输出我认为有效的ISO8601 / RFC3339时区偏移量。我正在使用以下格式字符串: (请注意,本机不支持,我有一个包装器将其替换为纳秒级)。 然后,将产生以下结果: 但是在Go中取消编组此功能将无效:https : //play.golang.org/p/vzOXbzAwdW

  • 问题内容: 我已经看到JSON日期格式的许多不同标准: 哪一个是正确的?还是最好的?有什么标准吗? 问题答案: JSON本身 没有 指定日期应如何表示,但JavaScript却指定了。 您 应该 使用的方法发出的格式: 原因如下: 它是人类可读的,但也很简洁 排序正确 它包括小数秒,可以帮助重新建立时间顺序 符合ISO 8601 ISO 8601已经在国际上建立了十多年的历史 W3C,RFC333

  • 您好,我正在从db中获取日期,其中日期列的类型为“date”,然后将其拆分并串联成字符串存储在db中 当从本地环境执行程序时,它工作正常,时间存储为28-09-2021 15:34:42,当通过服务器执行程序时,它以12小时格式28-09-2021 03:34:42PM存储,这会产生问题并引发错误。如果您有任何关于如何解决此问题的想法,我们将不胜感激。

  • 问题内容: 我已经看到了许多不同的JSON日期格式标准: 哪一个是正确的?还是最好的?有什么标准吗? 问题答案: JSON本身并未指定日期应如何表示,但JavaScript却指定了。 你应该使用的方法发出的格式: 原因如下: t’s human readable but also succinct It sorts correctly It includes fractional seconds,

  • 我一直在尝试使用: 使用此链接: 但我有一个错误: 当我换成: 是工作。我能做些什么来和日期一起工作? 谢啦

  • 我正在使用iReport 4.6.0和JasperReports Server 4.5.0。我创建了一个报告,希望在其中向MySQL数据库传递日期值。我创建了一个参数并使用了java。util。日期类。在输入控件上,我将其设置为单值类型和日期数据类型。在iReport中运行报告(使用预览)时,系统会提示我选择日期,并使用指定的日期生成报告。将报告部署到JasperReports服务器后,当系统提示