设计一个函数 timeSince(date),接受个日期对象 date,返回距离当前时间的时间间隔,以用户可读的形式展示 (例如:"2小时前"、"3天前"、"1年前"等)
时间: 2023-12-07 07:03:52 浏览: 26
下面是一个设计的示例函数 `timeSince`,它接受一个日期对象 `date`,并返回距离当前时间的时间间隔,以用户可读的形式展示:
```javascript
function timeSince(date) {
const seconds = Math.floor((new Date() - date) / 1000);
const intervals = [
{ label: '年', seconds: 31536000 },
{ label: '月', seconds: 2592000 },
{ label: '周', seconds: 604800 },
{ label: '天', seconds: 86400 },
{ label: '小时', seconds: 3600 },
{ label: '分钟', seconds: 60 },
{ label: '秒', seconds: 1 }
];
for (let i = 0; i < intervals.length; i++) {
const interval = intervals[i];
const count = Math.floor(seconds / interval.seconds);
if (count >= 1) {
return `${count} ${interval.label}前`;
}
}
return '刚刚';
}
```
使用示例:
```javascript
const date = new Date('2021-08-15T12:00:00Z');
console.log(timeSince(date)); // 输出:1个月前
```
该函数首先计算当前时间与给定日期之间的秒数差。然后,使用一系列时间间隔(年、月、周、天、小时、分钟、秒)进行循环比较,找到最适合的时间间隔,并返回相应的用户可读形式。
请注意,该函数只能返回最大单位为年的时间间隔。如果需要显示更精确的时间间隔,可以根据需求进行修改。