功能说明:
根据传入的的开始时间和结束时间,返回处理后的时间
【不同年份】: 2022年12月31日 12:20
【同年不同月】:12月31日 12:20
【同年同月】: 12月31日 12:20
【同一天】 12:20
【差一天】 昨天 12:20
【差两天】 前天 12:20
【其余情况】: 12月31日 12:20
代码具体实现很简单,未避免重复造轮子,分享一下代码。
一.代码部分
1.timer.js
//返回显示时间
function cutYear(date){return parseInt(date.split(' ')[0].split('/')[0])
}
function cutMonth(date){return parseInt(date.split(' ')[0].split('/')[1])
}
function cutDay(date){return parseInt(date.split(' ')[0].split('/')[2])
}
function cutSecond(data){return data.split(' ')[1].split(':')[0]+":"+data.split(' ')[1].split(':')[1]
}
function timer(faultDate, completeTime) {
const startYear = cutYear(faultDate)
const startMonth = cutMonth(faultDate)
const startDay = cutDay(faultDate)
const endYear = cutYear(completeTime)
const endMonth = cutMonth(completeTime)
const endDay = cutDay(completeTime)
const yearFlag = endYear - startYear //相差年份
const monthFlag = endMonth - startMonth //相差月份
const dayFlag = endDay - startDay //相差天数
if(yearFlag>=1){ // eg:2022/12/31 XX:XXreturn startYear + '年' + startMonth + '月' + startDay + '日 '+ cutSecond(faultDate)
}
else{ //同一年if(monthFlag>=1) {return startMonth +'月' +startDay +'日 ' + cutSecond(faultDate)}else{ //同一月 if(dayFlag==0) { //同一天return cutSecond(faultDate)}if(dayFlag ==1) { //昨天return "昨天 "+cutSecond(faultDate)}if(dayFlag==2){ //前天return "前天 " +cutSecond(faultDate)}if(dayFlag>=3){return startMonth +'月' +startDay + '日 ' + cutSecond(faultDate)}}
}
}module.exports={timer
}
2.使用方法
①首先在使用的页面引入timer.js
//时间处理
const {timer} = require('../../utils/timer')
//获取时间 【小程序自带】
const util = require('../../utils/util')
②.调用timer函数
timer函数需要传入两个参数,分别为开始时间和结束时间。时间的具体格式如下:
示例时间参数格式:
2022/08/05 16:51:54
年/月/日 小时:分钟:秒该格式的时间可通过调用util中的formatTime获取
具体获取方法如下:
const currentTime = util.formatTime(new Date())//示例调用timer
const newDate = timer(开始时间,结束时间)console.log("输出时间:",newDate)
③.输出结果
转换后的结果已保存到newDate中,可根据需要渲染到自己的页面上
示例渲染: