uniapp开发 需要处理显示不同的时间格式 如下,这个要怎么处理?
2条回答 默认 最新
- 顾与吖 2023-05-18 19:05关注
您好,针对uniapp的日期格式展示需求,可以通过以下代码实现:
// 获取当前时间戳 var now = new Date().getTime() // 时间差(单位:毫秒) var diff = now - yourDate.getTime() // 超过两天,按星期几展示 if (diff >= 172800000) { var weekdays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'] return weekdays[yourDate.getDay()] } // 超过一天,显示昨天/今天 else if (diff >= 86400000) { var yesterday = new Date(now - 86400000) if (yourDate.getDate() === yesterday.getDate()) { return '昨天 ' + format(yourDate, 'HH:mm') } else { return '今天 ' + format(yourDate, 'HH:mm') } } // 不超过一天,按时-分展示 else { return format(yourDate, 'HH:mm') }
其中,format 函数是用于格式化具体时间的,具体实现方式可以自行编写。此处给出一个常见的实现方式:
function format(date, fmt) { var o = { "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(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return fmt; }
希望对您有所帮助
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀