【问题标题】:Kendo AngularJS Date picker - how to set ng-model from timestamp to formatted date?HeKendo AngularJS 日期选择器 - 如何将 ng-model 从时间戳设置为格式化日期?他
【发布时间】:2015-03-11 11:55:14
【问题描述】:

A 有以下基于文档的日期时间选择器 http://demos.telerik.com/kendo-ui/datepicker/angular

<input kendo-date-picker
                     k-options="monthSelectorOptions"
                     ng-model="milestone.estimate"
                     k-ng-model="dateObject" />

有以下选项:

  // SET OPTIONS FOR DATE TIME PICKER
  $scope.monthSelectorOptions = {
    format: "dd.MM.yyyy",
    change: $scope.onDateChange
  };

我想问一下如何根据时间戳进行自动日期格式设置:

ng-model="milestone.estimate"

在选择日期之后,从范围内的选择器更新值到时间戳,但在日期选择器中显示格式化日期。

这可能吗?请问我该怎么做?

非常感谢您的建议。

【问题讨论】:

    标签: javascript angularjs date kendo-ui datepicker


    【解决方案1】:

    尝试使用 angularjs 日期过滤器?它就在您展示的示例中:

    <div class="demo-section k-content"ng-controller="MyCtrl">
        <div class="box-col">
            <h4>Select date:</h4>
            <input kendo-date-picker
             ng-model="dateString"
             k-ng-model="dateObject" />
    

    然后再往下……

    dateObject: {{ dateObject | date:"EEEE, MMMM d, yyyy" }}
    

    呈现与您想要的非常相似的日期。在这里阅读更多:

    https://docs.angularjs.org/api/ng/filter/date

    【讨论】:

    • 但是在这种情况下我不能在模板中使用过滤器:ng-model="{{milestone.actual | date:'medium'}}" 而且我不知道如何访问 dateObject来自控制器。
    • 能否请您添加一些示例,怎么做?
    【解决方案2】:

    您可以使用parseFormats kendo 属性,让 kendo 知道输入的格式是什么

    parseFormats: ["dd/MM/yyyy'T'HH:mm:ss"] // e.g. 11/03/2015T18:05:00
    

    在您的配置中:

    // SET OPTIONS FOR DATE TIME PICKER
     $scope.monthSelectorOptions = {
        format: "dd.MM.yyyy",
        parseFormats: ["dd/MM/yyyy'T'HH:mm:ss"], // e.g. 11/03/2015T18:05:00
        change: $scope.onDateChange
     };
    

    【讨论】:

      【解决方案3】:

      要使用 Angular 代码格式化日期,您可以通过在输入上使用 ng-change 并传递 yr ng-model 来调用 formatDate 函数,因为 ng-model 也附加到剑道日历 ng-change格式化 ng-model

          function formatDate(anyDate) {
              return $filter('date')(anyDate, 'yyyy-MM-dd HH:mm:ss');
          }
      
      $scope.formatDate = function(anyDate){
             return $filter('date')(anyDate, 'yyyy-MM-dd HH:mm:ss');
      }
      

      并将其注入你的控制器 $filter

      【讨论】:

        猜你喜欢
        • 2016-03-20
        • 1970-01-01
        • 2017-08-03
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 2014-05-08
        • 1970-01-01
        • 2021-05-18
        相关资源
        最近更新 更多