【问题标题】:Formatting and displaying date in angularjs在angularjs中格式化和显示日期
【发布时间】:2016-05-12 04:07:24
【问题描述】:

我创建了一个 datepicker 指令,它使用 jquery datepicker 来生成日历。我们可以在选择日期后格式化它显示数据的方式。我有一些存储在数据库中的日期。 我的要求是仅在显示日期并且不想更改模型数据时以某种特定格式加载日期。

我创建了一个过滤器来格式化文本,但它经常返回“Nan Undefined NaN”

这是我的过滤器

    myUploadApp.filter('cmdate', ['$filter', function ($filter) {
        return function (input, format) {             
          if (input) {
            return $filter('date')(new Date(Date.parse(input)), format);
          } else {
            return null;
         }
      };
   }]);

并调用此过滤器“cmdate :'dd MMM yyyy'”,这是添加的。我的输入日期格式将类似于“23/04/2016”。

【问题讨论】:

    标签: angularjs jquery-ui-datepicker


    【解决方案1】:

    你应该检查 moment.js - http://momentjs.com/

    我用它把像“2016-05-12T14:00:00.346Z”这样的日期变成像“10 小时内”这样的词

    fromNow.filter.js

    myapp.filter('fromNow', [, function () {
            return function (date) {
                return moment(date).fromNow();
            }
        };
    }]);
    

    看看它是否有你需要的格式化程序

    【讨论】:

      【解决方案2】:

      Date.parse接受字符串格式MM/dd/yyyy,而你的输入喜欢dd/MM/yyyy,所以它不起作用。

      如果你坚持使用这种格式,需要更正parse之前的格式;

      .filter('cmdate', ['$filter', function ($filter) {
          return function (input, format) {
      
              //swap month and date first
              input = input.split('/');
              input[0] = input.splice(1, 1, input[0])[0];
              input = input.join('/');
      
              var date = new Date(Date.parse(input));
              if (input) {
                  return $filter('date')(new Date(Date.parse(input)), format);
              } else {
                  return null;
              }
          };
      }])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-10
        • 1970-01-01
        • 2016-01-27
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        • 2014-05-02
        相关资源
        最近更新 更多