`

js时间比较,返回如几分钟前、几个月前、几年前

    博客分类:
  • js
阅读更多
//时间转换函数
	function transferDate(date) {//date的格式如:2011-08-01 12:13:55.1
		var inDate = new Date();//存放传入时间
		var curDate = new Date();//取得当前时间
		var yearAndTime = date.split(" "); //根据空格组成数组
		var fullYear = yearAndTime[0].split("-"); //根据'-'组成数组
		var time = yearAndTime[1].split(":"); //根据':'组成数组
		time[2] = time[2].split(".")[0];//修正正确的秒
		inDate.setFullYear(fullYear[0], fullYear[1] - 1, fullYear[2]);//设置传入时间的年月日
		inDate.setHours(time[0], time[1], time[2]);//设置传入时间的时分秒
		return doTransfer(inDate, curDate);
	}
	//执行转换操作
	function doTransfer(inDate, curDate) {
		var str = "";//用于存放返回的字符串
		inDate.setMilliseconds(0);//设置传入时间的毫秒为0
		curDate.setMilliseconds(0);//设置当前时间的毫秒为0
		var YEAR1 = 1000 * 60 * 60 * 24 * 365;//定义一年
		var YEAR2 = 1000 * 60 * 60 * 24 * 365 * 2;//定义两年
		var DAY = 1000 * 60 * 60 * 24;//定义一天
		var HOUR = 1000 * 60 * 60;//定义一个小时
		var MIN = 1000 * 60;//定义1分钟
		var diff = curDate - inDate;//取得当前时间与传入时间的时间差
		if ((diff - YEAR2) >= 0) {//判断是否是两年以上
			str += inDate.getFullYear() + "年";
			str += (inDate.getMonth() + 1) + "月" + inDate.getDate() + "日";
		} else {
			if ((diff - YEAR1) >= 0) {//判断是否是1年以上
				str += "1年前";
			} else {
				var subdaynum = -1;
				var workmonthnum = 0;
				for ( var i = inDate.getTime(); i <= curDate.getTime(); i = (i + DAY)) {
					var days = new Date(i);
					subdaynum++;
					if (days.getDate() == 1) {
						workmonthnum++;//记录当前时间与传入时间相差几个月
					}
				}
				if (subdaynum >= 31) {//相差天数是否大于31天
					str += workmonthnum + "个月前";
				} else {
					if (subdaynum >= 1) {//相差天数是否大于1天
						str += subdaynum + "天前";
					} else {
						var h = parseInt(diff / HOUR);
						if (h >= 1) {//相差时间是否大于1小时
							if ((curDate.getDate() - inDate.getDate()) == 1
									&& h > 12) {//是否跨日期相差超过12小时
								str += "1天前";
							} else {
								str += h + "小时前";
							}
						} else {
							var m = parseInt(diff / MIN);
							if (m >= 1) {//是否相差超过1分钟
								str += m + "分钟前";
							} else {
								str += "刚刚";
							}
						}
					}
				}
			}
		}
		return str;
	}

 

2
2
分享到:
评论

相关推荐

    js 计算时间(几分钟前、几小时前、几天前、几周前、几月前)

    在JavaScript中,计算时间差并显示为“几分钟前”、“几小时前”、“几天前”、“几周前”或“几月前”的功能是一项常见的需求,主要用于动态更新信息的时效性,比如社交媒体的状态更新或者消息通知。这个功能的核心...

    js和java返回三个月前的时间

    ### 使用JS和Java返回三个月前的时间 在软件开发过程中,日期和时间的处理是一项非常常见的需求,尤其是在涉及历史数据查询、统计分析等场景时。本文将详细介绍如何使用JavaScript(JS)和Java这两种语言来实现获取...

    jquery显示当前时间(年-月-日 小时:分钟:秒 星期几)

    本主题聚焦于如何使用jQuery来显示实时更新的当前时间,格式为"年-月-日 小时:分钟:秒 星期几"。下面我们将详细探讨实现这一功能的步骤和相关知识点。 首先,我们需要引入jQuery库。如果你的项目中尚未包含jQuery,...

    iOS日期格式化类(刚刚、一分钟前、昨天、周几)

    `NSCalendar`可以用来执行日历计算,`NSDateComponents`用于提取日期的各个部分,如年、月、日、小时等,而`NSComparisonResult`则用于比较两个日期的先后顺序。 总的来说,创建一个`DateFormatting`类来处理iOS...

    JS原生态将时间转换成几分钟前几小时前几天前插件timeago特效代码

    "JS原生态将时间转换成几分钟前几小时前几天前插件timeago特效代码" 提供了一种优雅的方式,来展示时间距离现在有多远,使得信息更加直观易懂。这种技术通常被称为“时间ago”功能,它能够把绝对时间戳转化为如“5...

    JavaScript(JS)_时间函数

    - **描述**: 返回本地时间与格林威治标准时间(GMT)之间的时差(以分钟为单位)。 #### 三、设置时间属性 除了获取时间属性外,`Date`对象还提供了设置时间属性的方法。 ##### 1. `setDate()`: 设置日期 - **...

    JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享

    接下来,我们根据`diffValue`的大小,判断是几个月前、几周前、几天前、几个小时前还是几分钟前,并返回相应的字符串。 如果原始日期时间不是时间戳,可以使用辅助函数将其转换为时间戳,例如: ```javascript // ...

    JS计算两个时间相差分钟数的方法示例

    此外,文章还提供了几个在线工具的链接,如在线日期计算器和Unix时间戳转换工具,这些工具可以帮助开发者在处理日期和时间问题时进行快速计算和验证。 总结一下,JavaScript计算两个时间相差分钟数的关键步骤包括:...

    Js获取当前日期时间及格式化代码

    标签中的知识点:涉及到Js在获取日期时间方面相关的几个关键功能和方法,包括获取年份、月份、日、星期、时间等,以及日期时间的格式化方法。 详细知识点介绍: 1. 获取当前日期和时间: - JavaScript中的Date...

    JS_时间与时间戳

    1. **getTimeStamp()函数**:该函数通过`new Date()`创建Date对象,并对其进行格式化,返回一个类似“2023-09-15 14:30:25.123”的字符串,其中包含了年、月、日、小时、分钟、秒和毫秒。 2. **curDateTime()函数**...

    js时间显示

    此外,`moment.js`或`date-fns`这样的库能提供更强大的日期和时间处理功能,比如轻松地实现日期格式化、比较、计算等,它们简化了JavaScript的日期处理,提高了代码的可读性和可维护性。 博客中可能还讨论了如何...

    javascript 时间滑动条

    - **时间处理**:滑动条的值通常是连续的数字,需要将其转换为有意义的时间格式(如小时:分钟:秒或年:月:日)。同时,也需要将用户输入的标准时间格式转换回滑动条的值。 - **毫秒数转换**:有时,滑动条的值可能...

    Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)

    在Vue.js中,有时我们需要根据创建时间和当前时间来展示操作的时间差异,比如“刚刚”,“几分钟前”,“几小时前”,或者“几天前”。这在很多Web应用中是很常见的功能,可以提升用户体验,让用户更容易理解信息的...

    js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前

    2. 使用Date对象的get方法(如getTime、getHours等)获取当前时间和历史时间的详细时间单位(如年、月、日、小时、分钟、秒)。 3. 计算两个时间点之间的差异,例如计算两个时间戳相差的天数、小时数、分钟数和秒数...

    JAVASCRIPT 取得当前时间,包括农历时间 时间格式:2011年11月8日 16:54 星期二 农历辛卯年(兔) 十月十三 申时

    在JavaScript中,获取当前时间并显示为特定格式,如“2011年11月8日 16:54 星期二 农历辛卯年(兔) 十月十三 申时”,涉及到多个知识点。首先,我们需要了解JavaScript的内置Date对象,它提供了与日期和时间相关的...

    JS获取当前时间并格式化"yyyy-MM-dd HH:mm:ss"

    - `getTime()`:返回从1970年1月1日到当前时间的毫秒数。 - `getHours()`:返回当前小时数,范围是0-23。 - `getMinutes()`:返回当前分钟数,范围是0-59。 - `getSeconds()`:返回当前秒数,范围是0-59。 - `...

    js显示时间日期

    // 分别获取年、月、日、星期、小时、分钟和秒 var year = time.getFullYear(); // 注意这里使用getFullYear()而不是getYear() var month = time.getMonth() + 1; // getMonth()返回的月份是从0开始的 var date ...

    js自带时间处理函数

    6. **`getMinutes()`**:返回分钟数(0-59)。 7. **`getMonth()`**:返回月份(0-11),其中 0 表示一月。 8. **`getSeconds()`**:返回秒数(0-59)。 9. **`getTime()`**:返回从 1970 年 1 月 1 日 00:00:00 UTC...

    JavaScript获取当前时间向前推三个月的方法示例

    在实际应用中,你可以调用这个`get3MonthBefor`函数来获取当前时间前三个月的具体日期和时间,并将其用于各种场景,如数据分析、日志记录或者设置时间限制等。 此外,文章中提到了一些在线工具,如在线日期/天数...

Global site tag (gtag.js) - Google Analytics