前生有约,今生注定。不然,天涯的我,海角的你,怎会跨过千山万水,来延续这一场前世未了尘缘?红尘陌上,相见恨晚,心心相连,轻语绵绵。我感恩天意,让我们在岁月的长河里幸运相见,了却了这份前世的幽婉缠绵

星宿UI API过来的时间时期格式是 2024-06-11T20:25
灵沐API返回前台的时间格式是:2024-03-26T12:49:56.867Z
这玩意一个比一个长,横看竖看都不是我们理想类型。而对于时间格式化,正常是后端处理好再由接口返回;而不会后端的喔,只能从前端下手;优雅的本地js格式化小程序数组中的时间日期
方案
对于这类日期 我有想过一个最最最最简单的纯css方案,那就是限制容器的宽度超出后隐藏
color: #2F3644;
position: absolute;
right: 28rpx;
width
: 120rpx;
overflow: hidden;
white-space: nowrap;

之前是不敢去想js处理的,因为它是一个数组,要对每个对象过来的日期做处理,直到今天codezen大佬远程批斗(灵沐接口做案例)
先写一个格式化日期函数
/**
* 格式化时间
* @param {*} date
*/
formatDate(dateStr, format="") {
const date = new Date(dateStr);
if (!format) format = 'yyyy-MM-dd hh:mm:ss';
let map = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds(),
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in map) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (map[k]) : (("00" + map[k]).substr(("" + map[k]).length)));
}
}
return format;
},
请求接口返回数据后调用格式化时间函数
// 热门文章
getHost() {
API.getHost([hostData]).then((res) => {
// 格式化时间格式
let data = res.data.data;
for(let key in data){
data[key].attributes.updatedAt = this.formatDate(data[key].attributes.updatedAt,'yyyy-MM-dd')
}
// console.log(data,'日期格式化');
this.setData({
host: data,
})
})
},
控制台打印

总结
用脑洞大开的css,还是正规胎生的js格式化时间都可以!条条大路通罗马,本文经验值+9,头发-1最后的最后,感谢codezen提供优质的js方案