活动介绍

js判断时间多久之前.txt

preview
需积分: 0 0 下载量 176 浏览量 更新于2024-12-22 收藏 1KB TXT 举报
在JavaScript开发中,日期和时间的处理是一项基础且重要的任务。这通常涉及到用户界面的交互,如根据当前时间显示某个事件发生的相对时间,例如“30分钟前”,“3天前”等。在提供的文件内容中,我们看到了一个名为`friendlyFormatTime`的函数,它将时间字符串转换为更易读、更友好的格式。接下来,我将详细介绍这个函数的工作原理以及涉及到的JavaScript日期时间处理知识点。 函数`friendlyFormatTime`接收一个参数`stringTime`,这是一个表示时间的字符串。然后,函数首先将该字符串转换为JavaScript的Date对象,这是操作时间的基础。接下来,函数通过创建两个Date对象`timePublish`和`timeNow`分别表示原始时间点和当前时间点。通过计算两个时间点的差值,我们可以得知过去了多久。 为了实现这一点,函数定义了一系列时间单位常量:分钟(`minute`)、小时(`hour`)、天(`day`)、月(`month`)和年(`year`)。这里需要注意的是,由于JavaScript的Date对象计算月份和年份时是基于从一个固定日期到另一个日期的天数差,因此这里的“月”和“年”并不是精确的公历月份和年份。它们只是基于天数差的简化表示。 函数内部使用`diffValue`变量来存储当前时间与原始时间的差值,即`diffValue = timeNow - timePublish`。随后,基于这个时间差值,计算出相差的年、月、周、天、小时和分钟数。不过,从`friendlyFormatTime`函数的实现代码来看,没有直接使用`month`和`year`两个变量,这可能是为了减少计算量,因为计算出的`diffMonth`和`diffYear`可能精度不高,不足以用于精确判断。 经过计算后,函数根据不同的时间差值区间来返回不同的结果。如果`diffValue`小于0,表示原始时间比当前时间晚,即未来的时间点,这种情况下返回“刚刚”。如果相差的年数大于1,则返回相差的年数加上“年前”。如果相差的月份大于1,则返回相差的月数加上“月前”,以此类推。如果相差的小时数、分钟数大于1,也分别返回相对应的描述。如果所有这些都不满足,且相差的时间在1分钟以内,则返回“刚刚”。 这样的处理使得时间的显示更加友好和直观,尤其适用于新闻网站、社交媒体和其他需要显示相对时间的应用场景。 此外,函数返回值之前存在一些小错误,例如`letstr=stringTime;`应为`let str = stringTime;`,`lethour=minute*60;`应为`let hour = minute * 60;`等,这些都是简单的语法错误,修改后函数即可正常运行。 通过这个函数,开发者能够更加容易地将时间数据以人性化的形式展现给用户,从而提高用户体验。无论是新手还是有经验的开发者,了解和掌握这些JavaScript日期时间处理的知识都是必要的。
身份认证 购VIP最低享 7 折!
30元优惠券