12

我在 Angular Kendo Grid 上工作,我正在获取格式的服务器数据

1900-01-01T00:00:00

但我希望它以标准格式显示,不知道该怎么做。我在网格列中应用了 format='{0:MM/dd/yyyy h:mm a}' 但没有效果。无论数据格式转换做什么,我都需要在代码的客户端做,即服务器日期到 javascript 格式!

<kendo-grid-column field="mydata.openDate" width="220" title="Open Date" filter="date" 
                   format='{0:MM/dd/yyyy h:mm a}'>
</kendo-grid-column>
4

3 回答 3

26

尝试这个:

<kendo-grid-column field="dateField" width="220" title="Open Date">
    <ng-template kendoGridCellTemplate let-dataItem>
        {{dataItem.dateField | date: 'MM/dd/yyyy'}}
    </ng-template>
</kendo-grid-column>

您还可以使用角日期管道提供的短格式或其他格式

于 2019-02-06T03:03:55.350 回答
6

如果您有一个大项目并且您必须多次使用相同的格式,那么指令就是要走的路。

这对于可用性非常重要,以防您决定更改使用的格式(维护)

import { Directive, OnInit } from '@angular/core';
import { ColumnComponent } from '@progress/kendo-angular-grid';

@Directive({
  selector: '[kendo-grid-column-date-format]'
})
export class KendoGridColumnDateFormatDirective implements OnInit {
  constructor(private element: ColumnComponent) {
  }

  ngOnInit() {
    this.element.format = "{0:dd.MM.yyyy}";
  }  
}

你可以像这样使用它

<kendo-grid-column field="yourField"
                   title="your title"
                   kendo-grid-column-date-format>
</kendo-grid-column>

超级重要不要忘记注册指令

于 2019-09-29T14:59:02.617 回答
5

Grid 数据需要包含实际的 JavaScript Date 对象,而不是一些字符串表示。然后内置的格式化、排序、过滤和编辑将这样处理日期并按预期工作:

文档

映射数据,使其包含实际日期。

例子:

字符串 日期

于 2018-10-17T13:28:35.933 回答