Reactjs 物料UI数据网格-按日期和UNIX时间戳过滤

Reactjs 物料UI数据网格-按日期和UNIX时间戳过滤,reactjs,typescript,material-ui,Reactjs,Typescript,Material Ui,问题:自定义格式的日期不可筛选(尽管可排序) 日期数据来自firebase秒(与UNIX时间戳相同),纳秒格式,然后首先转换为Javascript日期/时间格式(周二2021年4月13日00:27:20 GMT-0400(东部夏时制)),然后转换为屏幕截图中的格式(2021年4月13日) 我的期望是,我遇到的问题是,我无法以这种方式格式化日期(2021年4月13日)和筛选-筛选的唯一方法是格式化日期MM/DD/YYYY 列定义: { 弹性:1, 字段:“已创建”, headerName:“已

问题:自定义格式的日期不可筛选(尽管可排序)

日期数据来自firebase秒(与UNIX时间戳相同),纳秒格式,然后首先转换为Javascript日期/时间格式(周二2021年4月13日00:27:20 GMT-0400(东部夏时制)),然后转换为屏幕截图中的格式(2021年4月13日)

我的期望是,我遇到的问题是,我无法以这种方式格式化日期(2021年4月13日)和筛选-筛选的唯一方法是格式化日期MM/DD/YYYY

列定义:

{
弹性:1,
字段:“已创建”,
headerName:“已创建”,
键入:“日期”,
valueFormatter:(参数:GridValueFormatterParams)=>{
//首先转换为JS Date,然后通过Date fns转换为locale选项
返回格式日期(参数值);
}
},
您可以阅读

只需像这样添加valueGetter:

{
flex: 1,
field: 'created',
headerName: 'Created',
type: 'date',
valueFormatter: (params: GridValueFormatterParams) => {
  // first converts to JS Date, then to locale option through date-fns
  return formatDate(params.value);
},
// valueGetter for filtering
valueGetter: (params: GridValueGetterParams) => {
  return formatDate(params.value);
}},
我相信您需要一个过滤器,根据用户输入的格式化日期进行过滤,将其转换回时间戳或要在过滤过程中读取的日期对象。基本上创建
值格式化程序的反向

编辑:我正在处理一个类似的问题,并找到了一个解决方案: 我为时间戳创建了一个隐藏字段:
{field:'timestamp',hide:true},

“我的日期”字段的工作方式如下:

{ field: 'date', headerName: 'Date', width: 150,
    type: 'date',
    valueGetter: (params) => `${new Date(params.getValue(params.id, 'timestamp'))}`,
    sortComparator: (v1, v2, param1, param2) =>
      param1.api.getCellValue(param1.id, 'timestamp') -
      param2.api.getCellValue(param2.id, 'timestamp'),
    valueFormatter: (params) => { return formatDate(params.value);},