123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- //显示日期
- //时间计算
- export function showtime(time) {
- let date =
- typeof time === "number" ?
- new Date(time) :
- new Date((time || "").replace(/-/g, "/"));
- let diff = (new Date().getTime() - date.getTime()) / 1000;
- let dayDiff = Math.floor(diff / 86400);
- let year = new Date().getFullYear()
- let nowyear = new Date(time).getFullYear()
- let isValidDate =
- Object.prototype.toString.call(date) === "[object Date]" &&
- !isNaN(date.getTime());
- if (!isValidDate) {
- window.console.error("不是有效日期格式");
- }
- // const formatDate = function(date) {
- // let today = new Date(date);
- // let year = today.getFullYear();
- // let month = ("0" + (today.getMonth() + 1)).slice(-2);
- // let day = ("0" + today.getDate()).slice(-2);
- // let hour = today.getHours();
- // let minute = today.getMinutes();
- // let second = today.getSeconds();
- // return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
- // };
- // if (isNaN(dayDiff) || dayDiff < 0 || dayDiff >= 31) {
- // return formatDate(date);
- // }
- return (
- (dayDiff === 0 &&
- ((diff < 60 && "刚刚") ||
- (diff < 120 && "1分钟前") ||
- (diff < 3600 && Math.floor(diff / 60) + "分钟前") ||
- (diff < 7200 && "1小时前") ||
- (diff < 86400 && Math.floor(diff / 3600) + "小时前"))) ||
- (dayDiff === 1 && "昨天") ||
- (dayDiff < 7 && dayDiff + "天前") ||
- // (dayDiff < 31 && Math.ceil(dayDiff / 7) + "周前")||
- (year == nowyear && time.slice(5)) ||
- (year > nowyear && time)
- );
- }
- //获取当前周数
- export function getWeekInYear(date) {
- // console.log(date)
- //判断该星期是否跨年,如果跨年就是第一周
- let weekStartDate = getWeekStartByDate(date) //一周开始时间
- // console.log(weekStartDate,'weekStartDate')
- let endDate = getDateFromDay(weekStartDate, 6) //一周结束时间
- // console.log(endDate,'endDate')
- if (weekStartDate.getFullYear() != endDate.getFullYear()) {
- // console.log(endDate.getFullYear() + '年第1周')
- let num = 1
- return num
- }
- let d1 = new Date(date)
- let d2 = new Date(date)
- d2.setMonth(0)
- d2.setDate(1)
- d2 = getWeekStartByDate(d2)
- // console.log(d2,'d2')
- let rq = d1 - d2
- let days = Math.ceil(rq / (24 * 60 * 60 * 1000)) + 1
- let num = Math.ceil(days / 7)
- // console.log(endDate.getFullYear() + '年第' + num + '周')
- return num
- }
- function getWeekStartByDate(date) {
- let day = new Date(date).getDay() == 0 ? 6 : new Date(date).getDay() - 1
- return getDateFromDay(date, -day)
- }
- function getDateFromDay(dayDate, day) {
- let date = new Date()
- date.setTime(new Date(dayDate).getTime() + day * 24 * 60 * 60 * 1000)
- return date
- }
- //获取本周一周日期
- export function getNowWeekList(data) {
- let now = new Date(data); // 当前日期
- let nowTime = now.getTime()
- let nowDayOfWeek = now.getDay() == 0 ? 6 : now.getDay() - 1; // 今天本周的第几天
- let dayList = []
- let startTime = uni.$u.timeFormat((nowTime - nowDayOfWeek * 86400000), 'yyyy-mm-dd');
- let start = new Date(startTime).getTime()
- dayList.push(startTime)
- for (let i = 1; i < 7; i++) {
- dayList.push(uni.$u.timeFormat((start + i * 86400000), 'yyyy-mm-dd'))
- if (i == 6) {
- return dayList
- }
- }
- }
- //获取树形结构
- export function handleTree(data, id, parentId, children) {
- let config = {
- id: id || 'id',
- parentId: parentId || 'parentId',
- childrenList: children || 'children'
- };
- var childrenListMap = {};
- var nodeIds = {};
- var tree = [];
- for (let d of data) {
- let parentId = d[config.parentId];
- if (childrenListMap[parentId] == null) {
- childrenListMap[parentId] = [];
- }
- nodeIds[d[config.id]] = d;
- childrenListMap[parentId].push(d);
- }
- for (let d of data) {
- let parentId = d[config.parentId];
- if (nodeIds[parentId] == null) {
- tree.push(d);
- }
- }
- for (let t of tree) {
- adaptToChildrenList(t);
- }
- function adaptToChildrenList(o) {
- if (childrenListMap[o[config.id]] !== null) {
- o[config.childrenList] = childrenListMap[o[config.id]];
- }
- if (o[config.childrenList]) {
- for (let c of o[config.childrenList]) {
- adaptToChildrenList(c);
- }
- }
- }
- return tree;
- }
|