直播网站源码,vue工具类,时间格式化
直播网站源码,vue工具类,时间格式化
最近做uniapp经常用到时间格式化,需要转为刚刚、几分钟前等字符串格式,自己根据需求整理了一个工具类
效果说明:时间转字符串格式,时间戳转字符串(如刚刚、几分钟前、几小时前)
1 | <br>timeFrom(1670894134) ==> 5分钟前<br>dateformat( "yyyy-MM-dd hh:mm:ss.S" ) ==> 2023-02-09 08:09:04.423<br>dateformat( "yyyy-M-d h:m:s.S" ) ==> 2023-2-9 8:9:4.18<br>dateformat( "E" ) ==> 四<br>dateformat( "EE" ) ==> 周四<br>dateformat( "EEE" ) ==> 星期四<br>timeFromTool.js<br>export function timeFrom(timestamp = null, format = null) {<br> if (!!format) {<br> return timestampformat(timestamp, format);<br> }<br> if (timestamp == null) timestamp = Number( new Date ())<br> timestamp = parseInt(timestamp)<br> // 毫秒(13位),秒(10位)<br> if (timestamp.toString().length == 10) timestamp *= 1000<br> let timer = (new Date()).getTime() - timestamp<br> timer = parseInt(timer / 1000)<br> // 如果小于5分钟,则返回"刚刚",其他以此类推<br> let tips = ''<br> switch (true) {<br> case timer < 300:<br> tips = '刚刚'<br> break<br> case timer >= 300 && timer < 3600:<br> tips = `${parseInt(timer / 60)}分钟前`<br> break<br> case timer >= 3600 && timer < 86400:<br> tips = `${parseInt(timer / 3600)}小时前`<br> break<br> case timer >= 86400 && timer < 2592000:<br> tips = `${parseInt(timer / 86400)}天前`<br> break<br> case timer >= 2592000 && timer < 365 * 86400:<br> tips = `${parseInt(timer / (86400 * 30))}个月前`<br> break<br> default:<br> tips = timestampformat(timestamp, format);<br> }<br> return tips<br>}<br>//时间戳转时间字符串<br>export function timestampformat(timestamp = null, format = "yyyy-MM-dd hh:mm:ss") {<br> if (timestamp == null) timestamp = Number(new Date())<br> timestamp = parseInt(timestamp)<br> // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)<br> if (timestamp.toString().length == 10) timestamp *= 1000<br> let date = new Date(timestamp + '+0800');<br> return dateformat(format,date);<br>}<br>// 对Date的扩展,将 Date 转化为指定格式的String<br>// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, <br>// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) <br>// 星期(E)可以用 1-3 个占位符,如 <br>// dateformat("yyyy-MM-dd hh:mm:ss.S") ==> 2023-02-09 08:09:04.423 <br>// dateformat("yyyy-M-d h:m:s.S") ==> 2023-2-9 8:9:4.18 <br>// dateformat("E") ==> 四 <br>// dateformat("EE") ==> 周四 <br>// dateformat("EEE") ==> 星期四 <br>export function dateformat( format = "yyyy-MM-dd hh:mm:ss",date = new Date()) {<br>var o = {<br> "M+": date.getMonth() + 1, //月<br> "d+": date.getDate(), //天<br> "H+": date.getHours(), //时(24小时制)<br> "h+": date.getHours() % 12 == 0 ? date.getHours() : date.getHours() % 12, //时(12小时制)<br> "m+": date.getMinutes(), //分<br> "s+": date.getSeconds(), //秒<br> "q+": Math.floor((date.getMonth() + 3) / 3), //季度<br> "S": date.getMilliseconds() //毫秒<br> }<br> var week = {<br> "0": "日",<br> "1": "一",<br> "2": "二",<br> "3": "三",<br> "4": "四",<br> "5": "五",<br> "6": "六"<br> };<br> <br> if (/(y+)/.test(format)) {<br> format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));<br> }<br> if (/(E+)/.test(format)) {<br> format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "星期" : "周") : "") + week[<br> date.getDay() + ""]);<br> }<br> <br> for (var k in o) {<br> if (new RegExp("(" + k + ")").test(format)) {<br> format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));<br> }<br> }<br> <br> return format;<br>} |
以上就是直播网站源码,vue工具类,时间格式化, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-03-08 短视频直播系统,选择选项时,点击出现下拉框
2022-03-08 手机直播源码,验证码自动读秒倒计时
2022-03-08 直播软件搭建,通过Android DrawerLayout实现侧边栏功能