JS 返回两个时间之间的所有日期、月份、年份、季度
JS 返回两个时间之间的所有日期、月份、年份、季度
1、日期
/*** 获取两日期之间日期列表函数* 返回两个时间之间所有的日期* 参数示例 ('2021-05-31','2021-06-30')* **/
export const getTimeTwo = (start, end) => {//初始化日期列表,数组let diffdate = new Array();let arr = []let i = 0;//开始日期小于等于结束日期,并循环while (start <= end) {diffdate[i] = start;//获取开始日期时间戳let stime_ts = new Date(start).getTime();//增加一天时间戳后的日期let next_date = stime_ts + (24 * 60 * 60 * 1000);//拼接年月日,这里的月份会返回(0-11),所以要+1let next_dates_y = new Date(next_date).getFullYear() + '-';let next_dates_m = (new Date(next_date).getMonth() + 1 < 10) ? '0' + (new Date(next_date).getMonth() + 1) + '-' : (new Date(next_date).getMonth() + 1) + '-';let next_dates_d = (new Date(next_date).getDate() < 10) ? '0' + new Date(next_date).getDate() : new Date(next_date).getDate();start = next_dates_y + next_dates_m + next_dates_d;//增加数组keyi++;}return diffdate;
}
2、月份
/*** 获取两个日期中所有的月份* 返回两个时间之间所有的月份* 参数示例 ('2021-01-01','2021-06-01')* **/
export const getMonthBetween = (start, end) => {let result = [];let min = new Date(start);let max = new Date(end);let curr = min;do{let month = new Date(curr).getMonth() + 1;let t = ""if (month < 10) {t = '0' + month} else t = monthlet str = curr.getFullYear() + "-" + (t);result.push(str);if (month == 12) {curr.setFullYear(new Date(curr).getFullYear() + 1)curr.setMonth(0)} else curr.setMonth(month);} while (curr <= max)return result;
}
3、年份
/*** 获取两个日期中所有的年份* 返回两个时间之间所有的年份* 参数示例 ('2021-01-01','2021-01-01')* **/
export const getYearBetween = (start, end) => {let result = [];let min = new Date(start).getFullYear();let max = new Date(end).getFullYear();while (min <= max) {result.push(min);min = (Number(min) + 1)}return result;
}
4、季度
/*** 获取两个日期中所有的季度* 返回两个时间之间所有的季度* 参数示例 ('2021-01-01','2022-01-01')* 返回 ['2021-1','2021-2','2021-3','2021-4','2022-1']* **/
export const getQuarterBetween = (startTime, endTime) => {startTime = new Date(startTime)endTime = new Date(endTime)let quarter = []// 与结束时间对比哪个大,比结束时间大则跳出,小于结束时间则继续计算下一个季度while (startTime < endTime) {let currentQuarter = quarterFun(new Date(startTime).getMonth() + 1)let year = new Date(startTime).getFullYear()quarter.push(year + '-' + currentQuarter)// 下一个判断时间startTime = nextQuarterLastDate(new Date(startTime).getFullYear(), currentQuarter)}// 判断季度function quarterFun(currMonth) {let currentQuarter = Math.floor((currMonth % 3 == 0 ? (currMonth / 3) : (currMonth / 3 + 1)))return currentQuarter}// 返回下个季度的第一日function nextQuarterLastDate(year, currentQuarter) {if (currentQuarter == 4) { //上一个季度是第四季度,则下一年第一季度第一天year += 1currentQuarter = 1} else {currentQuarter += 1}let nextTime = new Date(year, currentQuarter * 3 - 2, 0, 0, 0, 0)return nextTime}return quarter
};
5、获取某年某个月一共有多少天 / 最后一天 / 第一天
let year = '2022'
let month = 4
// 有多少天
let days = new Date(year,month,0).getDate() //30
// 最后一天
let lastday = new Date(year,month,0) //2022-04-30
// 第一天
let firstday = new Date(year,month-1,1) //2022-04-01
6、判断当前月份属于哪个季度
let currMonth = new Date().getMonth()+1
let currQuarter = Math.floor( ( currMonth % 3 == 0 ? ( currMonth / 3 ) : ( currMonth / 3 + 1 ) ) )
季度公式
// 1
1+(q-1)*3 or (q*3-2)
// 2
q*3-1
// 3
q*3
7、判断当前时间往前几个月份的日期
//now time 2022/08/01 14:58:40
//年(getFullYear,setFullYear)
//日(getDate,setDate)
//时(getHours,setHours())
//分秒同理
let onlineTime = 1
let disMouth= new Date(new Date().setMonth((new Date().getMonth() - onlineTime))) // 2022/07/01 14:58:40
参考:JavaScript Date 对象
8、返回两个日期相差天数
//now time 2022/08/01
let days = ((new Date() - disMouth) / (1 * 24 * 60 * 60 * 1000))^0 //相差天数 31
JS 返回两个时间之间的所有日期、月份、年份、季度相关推荐
- java获取两个时间之间的所有日期、月份、年份,返回列表
需求描述 输入开始时间和结束时间,获取时间范围内的所有日期,月份.年份 (输入可以为"yyyy-MM-dd HH:mm:ss"或者"yyyy-MM-dd&quo ...
- js计算两个时间之间天数差的实例代码
days = dateDiff(d1,d2); 调用该函数传递两个时间值:2013-01-19 2013-12-19 if(validatePeriod(date1Year,date1Month, ...
- MySQL timestampdiff()函数返回两个时间之间的差值
TIMESTAMPDIFF(unit,begin,end); TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式. TIMESTAMP ...
- js计算两个时间之间的差,超简便的方法
转载出处 getDiffDay(date_1, date_2) {// 计算两个日期之间的差值let totalDays,diffDatelet myDate_1 = Date.parse(date_ ...
- js获取传统节假日_js 两个时间之间工作日的计算问题(包含节假日)
后端用vue写点前端代码,也是罪过...嗷嗷嗷 行吧 项目需求描述:需要对时间控件里面的两个时间计算出相隔多少个工作日(包含节假日),由于节假日每年都不确定.保证项目能够正常使用,录用了2018年和 ...
- JS 计算两个时间的间隔
js 计算两个时间之间间隔的天数 var start = new Date('2019-12-10'); //开始的时间 var end = new Date('2020-01-09'); //结束的 ...
- python时间差转换成天数_Python实现计算两个时间之间相差天数的方法
本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date im ...
- js计算两个时间戳之间的时间差(多少天、时、分、秒)
util.js 文件中 1.定义方法 //计算两个时间之间的时间差 多少天时分秒 function intervalTime(startTime,endTime) {// var timestamp= ...
- Mysql-计算两个时间之间的差值
计算两个时间之间的差值 1.datediff()计算date差值 2.timediff()计算时分秒差值 3.timestampdiff()计算指定维度的时间差值 1.datediff()计算date ...
最新文章
- Elastic Job从单点到高可用、同城主备、同城双活
- 二十、SPI设备驱动及应用(一)
- php1为true,php有一个预定义的常量true,值为整数1,这该如何理解?
- 《面向对象程序设计》第12章在线测试
- request的简介和运行环境
- IBase component cannot be created and deleted in the same second
- python界面设计实例qt_pyqt的最小示例qtreeview和qt设计
- python-简单邮件报警
- 你离Python大神就差这课树了!建议收藏|Python技能树测评
- PlusWell FileMirror软件产品简介
- 我要发明计算机作文,我要发明机器人作文700字
- 量子计算机 时间倒流,科学家首次利用量子计算机成功逆转时间,时间倒流将变成可能?...
- Photoshop 2021(Ps)下载安装及详细安装教程
- 金融行业用户画像最佳实践
- 微信小程序新手教程 1.0
- ansible-playbook 通过mail模块发送邮件
- Element DateTimePicker 日期时间选择器 今天日期设置,并获取value值
- 淘宝/天猫获取商品历史价格信息 API
- 戴尔寄希望于区块链在印度服务器市场保持竞争力
- 微信小程序快速创建wxml、js、json、wxss新文件