请问,想将数据库中的时间戳在页面上以 2022-01-12 10:10:10
这样的格式显示在页面上,那应该是在前端对时间戳进行格式化处理,还是在后端进行处理呢?
数据格式
{
"_id": {
"$oid": "61df7c96d649ac83eefa36d3"
},
"key": 1286756906,
"status": 1,
"name": "bill",
"starttime": 1642068153784,
"endtime": 1673604153784
}
我当前是先在后端进行处理
.get("/list", async (ctx) => {
let allrecords = await db.myrecords.find();
await ctx.render("list", {
allrecords: allrecords.map(d => { d.endtime = new Date(d.endtime).getFullYear() + "-" + (new Date(d.endtime).getMonth()+1 < 10? '0'+ (new Date(d.endtime).getMonth()+1):(new Date(d.endtime).getMonth()+1)) + "-" + new Date(d.endtime).getDate() + " " + new Date(d.endtime).getHours() + ":" + (new Date(d.endtime).getMinutes()< 10 ? '0' + new Date(d.endtime).getMinutes():new Date(d.endtime).getMinutes()); return d}).map(d => { d.starttime = new Date(d.starttime).getFullYear() + "-" + (new Date(d.starttime).getMonth()+1 < 10? '0'+ (new Date(d.starttime).getMonth()+1):(new Date(d.starttime).getMonth()+1)) + "-" + new Date(d.starttime).getDate() + " " + new Date(d.starttime).getHours() + ":" + (new Date(d.starttime).getMinutes()< 10 ? '0' + new Date(d.starttime).getMinutes():new Date(d.starttime).getMinutes()); return d})
});
})
然后在前端直接读出来
<% allrecords.forEach(function(item, i){%>
<div class="item">
<div>start: <%=item.starttime%></div>
<div>end: <%=item.endtime%></div>
</div>
<%})%>
数据少还行,但数据量多了,明显感觉执行效率太低了,请问正确的做法是什么呢?谢谢!
通常格式化都在前端,因为前端是可以直接拿到用户的本地时区的,后端无法直接获取