【问题标题】:Date format in SlickGridSlickGrid 中的日期格式
【发布时间】:2017-02-08 06:20:46
【问题描述】:

SlickGrid 使用默认的美国日期格式 mm/dd/yyyy 启动日历。我以澳大利亚格式 dd/mm/yyyy 将日期存储在我的数据库中。如何将日历的格式更改为 dd/mm/yyyy?

【问题讨论】:

    标签: slickgrid


    【解决方案1】:

    您可以通过编写新的自定义编辑器来使用您选择的 DatePicker。默认日期编辑器使用 jQueryUI DatePicker。 就个人而言(我也在澳大利亚),我使用具有以下设置的默认设置:

    function DateFormatter(rowIndex, cell, value, columnDef, grid, dataProvider) {
      if (value == null || value === "") { return "-"; }
      return moment.utc(value).format('ddd, D MMM YYYY');
    }
    

    ... 使用moment.js 格式化日期,并在 DateEditor ...

    $input.datepicker({
      showOn: "button",
      changeMonth: true,
      changeYear: true,
      dateFormat: 'd/m/yy',
      buttonImageOnly: true,
      buttonImage: "../images/calendar.gif"
    });
    

    你也可以localise

    【讨论】:

      【解决方案2】:

      您可以为行编写格式化程序(我也使用 moment.js):

      function dateTimeFormatter (row, cell, value, columnDef, dataContext) {
          var dateTime = Date.parse(value);
          var result = moment(dateTime);
          return result.format('DD.MM.YYYY hh:mm:ss');
      }
      

      【讨论】:

      • 我也将 MomentJS 用于日期格式化程序,但您的方法不是防弹的,当 Moment 无法确定您使用的格式时可能会失败,但是您可以简单地将其作为第二个参数提供moment(value, inputFormat).format(outputFormat);
      【解决方案3】:

      首先,将代码添加到本地库中的 slick.formatters.js 文件中: 在两个地方添加自定义日期格式化程序:

      $.extend(true, window, {
      "Slick": {
        "Formatters": {
          "PercentComplete": PercentCompleteFormatter,
          "PercentCompleteBar": PercentCompleteBarFormatter,
          "YesNo": YesNoFormatter,
          "Checkmark": CheckmarkFormatter,
          "Checkbox": CheckboxFormatter,
          "Date": Dateformatter //<<  this one
        }
      }
      

      });

      在文件末尾:

      function Dateformatter(row, cell, value, columndef, datacontext) {
              if (value === null) {
                  return "";
      
              } else {
                  var d = new Date(value);
                  var m = d.getMonth() + 1;
                  return (d.getDate() + "/" + m + "/" + d.getFullYear());
              }
             
       }
      })(jQuery); //<< this line is already present
      

      现在您可以在列定义中添加日期格式化程序:

      { id:“lastLoginDate”,名称:“LastLoginDate”,字段:“lastLoginDate”,格式化程序:Slick.Formatters.Date },

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-17
        • 2018-01-28
        • 2010-11-03
        • 2017-12-17
        • 1970-01-01
        • 2011-06-22
        • 1970-01-01
        • 2022-01-23
        相关资源
        最近更新 更多