我正在使用React Data Table Component来显示表数据,效果非常好!
我有一个lastLogin时间的行字段,它以这样的模型存储在MongoDB中:
lastLogin: [{
type: Date,
required: false,
}],
我的数据表组件看起来是这样的:
<DataTable
noHeader
pagination
paginationPerPage={15}
paginationRowsPerPageOptions={paginationRowsPerPageOptions}
responsive
columns={columns}
sortIcon={<ChevronDown />}
className="react-dataTable"
data={store.data}
/>
当我尝试在没有时间的情况下呈现日期时,使用列,效果很好:
{
name: 'Last Login',
selector: (row) => row.lastLogin,
},
将导致:
- 第1行:2021-11-17T0:16:55.093Z
- 第2行:(空(
然而,当使用moment进行格式化时,它似乎是在获取以前的记录结果。
{
name: 'Last Login',
selector: (row) => row.lastLogin,
format: (row) => moment(row.lastLogin).format('lll'),
},
将导致:
- 第1行:2021年1月1日上午12:00
- 第2排:2021年11月17日下午1:15
这段代码是正确的,其结果是基于当前的工作方式。
moment将当前时间作为处理流程的默认时间,因此,如果您传递了一个日期值,那么您将处理并格式化该值,否则将处理并设置当前日期的格式。
例如:
var now = moment(undefined).format('lll');
console.log(now)
这将用于:
var now2 = moment().format('lll');
console.log(now2)
演示链接
好的。。。这个问题已经解决了。。。愚蠢的语法错误。
模型上的登录日期设置为数组:
lastLogin: [{
type: Date,
required: false,
}],
应为:
lastLogin: {
type: Date,
required: false,
},