在 Pdfmake 上格式化日期

Format a date on Pdfmake

我用过pdfmake library to export pdf content with the Angular UI Grid。你能告诉我如何格式化上面的日期吗?谢谢

目前显示是这样的:

Angular 网格是这样的:

 {
   name: app.localize('BrDateReceived'),
   field: 'bpoHeaderPerformedFors[0].dateReceived',
   cellFilter: 'date:\'MM/dd/yyyy\'',
   width: 140,
 },

很好的讨论: cellFilter does not work with the Pdfmake

更新

我发现 UI-grid 在 gridoptions 中有一个函数可以让你在每个单元格上回调。使用 angular-moment 和 gridoptions.exporterFieldCallback 我能够更改 PDF 中的每个单元格。查看此 plnkr.

中 app.js 文件中的第 43 至 47 行

另外,请注意我更新了下面的 link 以使用 angular-moment 和 github 上的正确回购协议。我之前使用的不是我推荐的那个。

祝你好运!

原答案

我建议将 angular-moment 导入您的应用程序,然后在您的文档定义中使用它。我以前成功地做到了这一点。像这样:

{text: 'DATE: ' + moment(bpoHeaderPerformedFors[0].dateReceived).format("MM-DD-YYYY")}

查看有关 angular-moment or full docs of momentjs 的更多信息(angular 版本基于)。

祝你好运!

答案是结合使用 exporterFieldCallback 函数和 angular 内置过滤器。首先包含 $filter:

app.controller('myController', ['$scope', '$filter', function ($scope,$filter){

然后在你的网格选项中:

$scope.gridOptions = {
exporterFieldCallback: function (grid, row, col, input)
    {
        if (col.name == 'myDateColumnName')
        {
            return $filter('date')(input, 'medium');
        } 
        else
        {
            return input;
        }
    },
}

您可以使用任何您喜欢的日期过滤器类型,中等只是适合我目的的示例。

我使用的代码与 phattyD 所说的相同。我还要求使用 ui-grid 附带的默认单元格模板来执行此检查:

// Format the DATE
// http://ui-grid.info/docs/#/api/ui.grid.exporter.api:GridOptions 

gridOptions.exporterFieldCallback = function ( grid, row, col, value ){
  if ( col.colDef.cellTemplate == 'ui-grid/date-cell' || col.colDef.type == 'date' ){
    value = $filter('date')(value, 'yyyy-MM-dd');
  }
  return value;
}

我附上我的完整代码以解决 ExcelCSV.

的相同情况

希望对您有所帮助

这是我的Plunkr