在Javascript/React中格式化设备ID与日期的技术问询
解决日志条目里的MAC地址和日期格式化问题
我来帮你修复这两个显示问题,咱们直接调整代码逻辑就行:
1. 修复MAC地址格式丢失冒号的问题
你当前的replace正则表达式/[{(":'")}]/g把冒号(:)也包含进去删除了,这就是MAC地址变成无冒号格式的原因。咱们把冒号从正则里移除,就能保留MAC地址的原始格式:
action: snapshot.val().auditLogs[date].log.replace(/[{("'")}]/g, "")
2. 用MomentJS格式化友好的日期格式
你已经在使用MomentJS了,直接用它解析原始日期字符串并输出目标格式即可。原始日期是YYYYMMDDTHHmmss格式(比如20191115T142402),我们可以用moment(date, "YYYYMMDDTHHmmss")解析,再用format("YYYY:MM:DD-HH:mm:ss")生成易读格式:
date: moment(date, "YYYYMMDDTHHmmss").format("YYYY:MM:DD-HH:mm:ss")
修改后的完整代码片段
把这两个修复整合到你的代码里,最终的forEach部分会是这样:
keys_in_audit_logs.forEach(date => { logs.push({ user: snapshot.val().auditLogs[date].authorizedBy, // 修复MAC地址:移除正则里的冒号,保留原始格式 action: snapshot.val().auditLogs[date].log.replace(/[{("'")}]/g, ""), // 用MomentJS格式化日期为清晰易读的格式 date: moment(date, "YYYYMMDDTHHmmss").format("YYYY:MM:DD-HH:mm:ss") }); });
这样修改后,前端页面展示的日志条目里:
- MAC地址会保持
E5:29:C7:E2:B7:64的带冒号格式 - 日期会变成
2019:11:15-14:24:02这种清晰易读的格式
另外提醒一下,确保你的React组件已经正确引入了MomentJS(比如通过import moment from 'moment'),这样格式化逻辑才能正常工作。
内容的提问来源于stack exchange,提问作者Shaho Soltani
相关产品推荐
相关产品推荐

