JavaScript日期比较应用小结

本文提供了一套JavaScript日期处理工具,包括获取当前日期、计算日期间隔、格式化日期等实用功能,适用于各种日期相关的开发需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript日期比较在平时的工作中用到的很频繁,在这里做一下小小的总结,有利于自己积累,也有利于交流。

/*
 * @discription: 日期计算工具
 * @requires:
 */

	CalendarUtil = {

	/*
	 * @discription: 获取当前日期的日期串.
	 * @return:
	 *	{String} (YYYY-MM-DD)日期字符串.
	 */
	getDate: function() {
		var date = new Date();
		var month = date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1);
		var da = date.getDate() <= 9 ? "0" + (date.getDate()) : (date.getDate());
		return (date.getFullYear() + "-" + month + "-" + da);
	},
	
	/*
	 * @discription: 返回几天之后的日期串.
	 * @params:
	 *  date - {String} (YYYY/MM/DD)日期字符串.
	 *  i - {int} 天数.
	 * @return:
	 *	{String} (YYYY/MM/DD)日期字符串.
	 */
	getDateAfter: function(date, i) {
		var r = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		if (r != null) {
			var date = new Date(r[1], r[3]-1, r[4]);
			date.setDate(date.getDate() + i);
			var month = date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1);
			var da = date.getDate() <= 9 ? "0" + (date.getDate()) : (date.getDate());
			return date.getFullYear() + "-" + month + "-" + da;
		} else {
			return date;
		}
	},

	/*
	 * @discription: 返回几天之前的日期串.
	 * @params:
	 *  date - {String} (YYYY/MM/DD)日期字符串.
	 *  i - {int} 天数.
	 * @return:
	 *	{String} (YYYY/MM/DD)日期字符串.
	 */
	getDateBefore: function(date, i) {
		var r = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		if (r != null) {
			var date = new Date(r[1], r[3]-1, r[4]);
		date.setDate(date.getDate() - i);
		var month = date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1);
		var da = date.getDate() <=9 ? "0" + (date.getDate()) : (date.getDate());
			return date.getFullYear() + "-" + month + "-" + da;
		} else {
			return date;
		}
	},

	/*
	 * @discription: 计算两个日期的天数差.
	 * @params:
	 *  date1 - {String} (YYYY/MM/DD)日期字符串.
	 *  date2 - {String} (YYYY/MM/DD)日期字符串.
	 * @return:
	 *	{string}  天数差.
	 */
	getDateDiff: function(date1, date2) {
		var aDate, oDate1, oDate2, iDays;
		var r1 = date1.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		oDate1 = new Date(r1[1], r1[3] - 1, r1[4]);

		var r2 = date2.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		oDate2 = new Date(r2[1], r2[3] - 1, r2[4]);
		iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 / 24);
		return iDays;
	},

	/*
	 * @discription: 计算与当前年份差.
	 * @params:
	 *  date - {String} (YYYY/MM/DD)日期字符串.
	 * @return:
	 *	{int}  与当前年份差.
	 */
	getYearDiff: function(oldDate, newDate) {
		var r1 = oldDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		var oldYear = r1[1];
		var newYear = new Date().getFullYear();
		if (typeof newDate != "undefined") {
			var r2 = newDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
			var newYear = r2[1];
		}
		return newYear - oldYear;
	},

	/*
	 * @discription: 获取时期data的星期数(字符串).
	 * @params:
	 *  date - {String} (YYYY/MM/DD)日期字符串.
	 * @return:
	 *	{string}  星期数(字符串).
	 */
	getStrWeek: function(date) {
		var r1 = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
		var day = new Date(r1[1], r1[3] - 1, r1[4]).getDay();
		var week = "";
		switch(day) {
			case 0:
				week = "星期日";
				break;
			case 1:
				week = "星期一";
				break;
			case 2:
				week = "星期二";
				break;
			case 3:
				week = "星期三";
				break;
			case 4:
				week = "星期四";
				break;
			case 5:
				week = "星期五";
				break;
			case 6:
				week = "星期六";
				break;
		}
		return week;
	},
	
	/*
	 * @discription: 格式化时间,将yyyy-mm-dd格式成 yyyymmdd
	 * @params:
	 *  date - {String} (YYYY-MM-DD)日期字符串.
	 * @return:
	 *	{int}  yyyymmdd格式日期.
	 */
	formatSJ: function(sj){
     var s=sj.substring(0,4);
     var m=sj.substring(5,7);
     var n=sj.substring(8,10);
     //l+k+p;
     var InsertSJ=s+m+n;
	   return InsertSJ;
    },
   /*
	 * @discription: 判断时间逻辑关系,
	 * @params:
	 *  date1 - {String} (YYYY-MM-DD),date2 -{String} (YYYY-MM-DD)
	 * @return:
	 *	true 逻辑正确,false 逻辑不正确
	 */
	checkStartEnd: function(date1,date2){
	  var s=date1.substring(0,4);
    var m=date1.substring(5,7);
    var n=date1.substring(8,10);
    var startSJ=s+m+n;
    var y=date2.substring(0,4);
    var mon=date2.substring(5,7);
    var da=date2.substring(8,10);
    var endSJ=y+mon+da;
		if(startSJ <= endSJ){
			return true;
		}else{
			return false;
		}
	},
	 /*
	 * @discription: 得到当前时间并格式化成YYYY-MM-DD,
	 * @params:
	 *  
	 * @return:当前日期的格式化字符串 YYYY-MM-DD
	 *	
	 */
 getNowFormatDate: function(){
   var day = new Date();
   var Year = 0;
   var Month = 0;
   var Day = 0;
   var CurrentDate = "";
   //初始化时间
   Year= day.getFullYear();//ie火狐下都可以
   Month= day.getMonth()+1;
   Day = day.getDate(); 
   CurrentDate += Year + "-"; 
   if (Month >= 10 )
   {
    CurrentDate += Month + "-";
   }
   else
   {
    CurrentDate += "0" + Month + "-";
   }
   if (Day >= 10 )
   {
    CurrentDate += Day ;
   }
   else
   {
    CurrentDate += "0" + Day ;
   }
   return CurrentDate;
}
};

 

基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值