前端页面显示的时间格式为:2022-03-18T01:46:08.000+00:00 如何转换为:年-月-日,并根据当前时间判断为几天前

由于后端每条博文的发表时间是以"xxxx---xx---xxxx:xx:xx"的形式显示的,

现在要在前端改成"xxxx年xx月xx日"的形式。

并对10分钟内发表的显示"刚刚",对24小时内发表的显示"小时前"。

超过24小时,小于48小时,显示"1天前"。

超过了48小时则显示"xxxx 年xx月xx日"。

解决方法:使用 new Date()

后端数据:

前端处理:

javascript 复制代码
//methods获取后端数据
showBlogs(){
				uni.request({
					url:"http://localhost:8000/blog/getPageBlogs",
					method:"POST",
					data:{
						pageNum:this.pageNum,
						pageSize:8
					},
					success: (res) => {
						//console.log(res.data);
						//参见接口规范中的返回值示例
						let tempblogs = res.data.message.records;
						for(let blog of tempblogs){
							if(blog.thumbnail == null){
								//没有缩略图,则给一张默认图片
								blog.thumbnail = "/static/log.png";
							}
							if (blog.posttime != null){
								let posttimes = blog.posttime;
								blog.posttime = this.transformTime(posttimes);
								console.log("转化为年月日:", blog.posttime)
							}
						}
						//...是展开运算符,将tempblogs数组中元素一一取出
						this.blogs.push(...tempblogs);
					}
				}); // end of uni.request()
javascript 复制代码
//时间改进
			transformTime(times){
				
				var date = new Date(times);
				console.log("上传时间为:", date)
				var Y = date.getFullYear(); //年
				var M = date.getMonth() + 1; //月
				var D = date.getDate(); //日
				var h = date.getHours(); //时
				var m = date.getMinutes(); //分
				var s = date.getSeconds(); //秒
		
				var nowdate = new Date();
				console.log("现在时间为:", nowdate);
				var diff = Math.abs(nowdate - date)
				//console.log("相差时间:", diff);
				var day = parseInt(diff / 1000 / 60 / 60 / 24)
				var hour = parseInt(diff / 1000 / 60 / 60) % 24
				var minute = parseInt(diff / 1000 / 60) % 60
				var second = parseInt(diff / 1000) % 60
				console.log('相差'+day+'天'+hour+'小时'+minute+'分钟'+second+'秒');
				
				var finaltime; //最终时间
				if (minute < 10){
					finaltime = "刚刚";
				} else if (day <= 1){
					finaltime = hour + "小时前";
				} else if (day > 1 && day <= 2){
					finaltime = "1天前";
				} else {
					finaltime = Y + "年" + M + "月" + D + "日";
				}
				return finaltime;
			},

前端结果:

相关推荐
小高0073 分钟前
React useMemo 深度指南:原理、误区、实战与 2025 最佳实践
前端·javascript·react.js
LuckySusu12 分钟前
【js篇】深入理解类数组对象及其转换为数组的多种方法
前端·javascript
LuckySusu13 分钟前
【js篇】数组遍历的方法大全:前端开发中的高效迭代
前端·javascript
LuckySusu14 分钟前
【js篇】for...in与 for...of 的区别:前端开发中的迭代器选择
前端·javascript
mon_star°19 分钟前
有趣的 npm 库 · json-server
前端·npm·json
去伪存真1 小时前
手把手教你实现用AI大模型做代码审查
前端·人工智能
科粒KL1 小时前
前端学习笔记- 从 HTTP 1.1 到 3,再从 SSE 到 Streamable HTTP
前端·http
盘子素1 小时前
前端实现有校验的大文件下载方案对比
前端
一颗奇趣蛋1 小时前
React.memo & useMemo:为什么 React 里「看起来没变的组件」还是渲染了
前端·react.js
天蓝色的鱼鱼1 小时前
Vue项目多级路径部署终极指南:基于环境变量的统一配置方案
前端·vue.js·架构