/**
* 获取对应的日期开始和结束时间
* @type {{convert: dateRangeUtils.convert}}
*/
let now = new Date(); //当前日期
let nowDayOfWeek = now.getDay()-1; //今天本周的第几天
let nowDay = now.getDate(); //当前日
let nowMonth = now.getMonth(); //当前月
let nowYear = now.getYear(); //当前年
nowYear += (nowYear < 2000) ? 1900 : 0; //
let lastMonthDate = new Date(); //上月日期
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
let lastYear = lastMonthDate.getFullYear();
let lastMonth = lastMonthDate.getMonth();
const dateRangeUtils ={
//格式化日期
formatDate:(date)=>{
let myYear = date.getFullYear();
let myMonth = date.getMonth() + 1;
let myWeekday = date.getDate();
if (myMonth < 10) {
myMonth = "0" + myMonth;
}
if (myWeekday < 10) {
myWeekday = "0" + myWeekday;
}
return (myYear + "-" + myMonth + "-" + myWeekday);
},
//获得某月的天数
getMonthDays:(myYear,myMonth)=>{
let monthStartDate = new Date(myYear, myMonth, 1);
let monthEndDate = new Date(myYear, myMonth + 1, 1);
let days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
},
//获得本季度的开始月份
getQuarterStartMonth:()=>{
let quarterStartMonth = 0;
if (nowMonth < 3) {
quarterStartMonth = 0;
}
if (2 < nowMonth && nowMonth < 6) {
quarterStartMonth = 3;
}
if (5 < nowMonth && nowMonth < 9) {
quarterStartMonth = 6;
}
if (nowMonth > 8) {
quarterStartMonth = 9;
}
return quarterStartMonth;
},
//今日
getCurrentDate:()=>{
let getCurrentDate = new Date(nowYear, nowMonth, nowDay);
return dateRangeUtils.formatDate(getCurrentDate)
},
//昨日
getYesterdayDate:()=>{
let getYesterdayDate = new Date(nowYear, nowMonth, nowDay - 1);
return dateRangeUtils.formatDate(getYesterdayDate);
},
//获得本周的开始日期和结束日期
getCurrentWeekRange:()=>{
let timeRange = new Array();
let weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
let weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
timeRange.push(dateRangeUtils.formatDate(weekStartDate));
timeRange.push(dateRangeUtils.formatDate(weekEndDate));
return timeRange;
},
//获得上周的开始日期和结束日期
getLastWeekRange:()=> {
let timeRange = new Array();
let weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);
let weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1);
timeRange.push(dateRangeUtils.formatDate(weekStartDate));
timeRange.push(dateRangeUtils.formatDate(weekEndDate));
return timeRange;
},
//获得本月的开始日期和结束时间
getCurrentMonthRange:()=> {
let timeRange = new Array();
let monthStartDate = new Date(nowYear, nowMonth, 1);
let monthEndDate = new Date(nowYear, nowMonth, dateRangeUtils.getMonthDays(nowYear,nowMonth));
timeRange.push(dateRangeUtils.formatDate(monthStartDate));
timeRange.push(dateRangeUtils.formatDate(monthEndDate));
return timeRange;
},
//获得上月开始时间和结束时间
getLastMonthRange:()=> {
let timeRange = new Array();
let lastMonthStartDate = new Date(lastYear, lastMonth, 1);
let lastMonthEndDate = new Date(lastYear, lastMonth, dateRangeUtils.getMonthDays(lastYear,lastMonth));
timeRange.push(dateRangeUtils.formatDate(lastMonthStartDate));
timeRange.push(dateRangeUtils.formatDate(lastMonthEndDate));
return timeRange;
},
//本季度的开始日期 结束日期
getCurrentQuarterRange:()=> {
let timeRange = new Array();
//本季度开始
let quarterStartDate = new Date(nowYear, dateRangeUtils.getQuarterStartMonth(), 1);
//本季度结束
let quarterEndMonth = dateRangeUtils.getQuarterStartMonth() + 2;
let quarterEndDate = new Date(nowYear, quarterEndMonth,
dateRangeUtils.getMonthDays(nowYear,quarterEndMonth));
timeRange.push(dateRangeUtils.formatDate(quarterStartDate));
timeRange.push(dateRangeUtils.formatDate(quarterEndDate));
return timeRange;
},
//上季度的第一天
getLastQuarterFirstDay:(year, month)=> {
let spring = 0; //春
let summer = 3; //夏
let fall = 6; //秋
let winter = 9; //冬
//月份从0-11
switch (month) {//季度的其实月份
case spring:
//如果是第一季度则应该到去年的冬季
year--;
month = winter;
break;
case summer:
month = spring;
break;
case fall:
month = summer;
break;
case winter:
month = fall;
break;
};
return new Date(year, month, 1);
},
/**
* 得到上季度的起止日期
* **/
getLastQuarterRange:()=> {
//起止日期数组
let timeRange = new Array();
//获取当前时间
let currentDate = new Date(nowYear, nowMonth, nowDay);
//获得当前月份0-11
let currentMonth = currentDate.getMonth();
//获得当前年份4位年
let currentYear = currentDate.getFullYear();
//上季度的第一天
let priorSeasonFirstDay = dateRangeUtils.getLastQuarterFirstDay(currentYear, currentMonth);
//上季度的最后一天
let priorSeasonLastDay = new Date(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth() + 2, dateRangeUtils.getMonthDays(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth() + 2));
//添加至数组
timeRange.push(dateRangeUtils.formatDate(priorSeasonFirstDay));
timeRange.push(dateRangeUtils.formatDate(priorSeasonLastDay));
return timeRange;
},
//上半年开始时间
getPrevHalfYear:()=>{
let timeRange = new Array();
timeRange.push(nowYear + '-01-01');
timeRange.push(nowYear + '-06-30');
return timeRange;
},
//下半年开始时间
getNextHalfYear:()=>{
let timeRange = new Array();
timeRange.push(nowYear + '-07-01');
timeRange.push(nowYear + '-12-31');
return timeRange;
},
//全年开始时间结束时间
getCurrentYearRange:()=>{
let timeRange = new Array();
//获取当前时间
let currentDate = new Date(nowYear, nowMonth, nowDay);
//获得当前年份4位年
let currentYear = currentDate.getFullYear();
//本年第一天
let currentYearFirstDate = new Date(currentYear, 0, 1);
//本年最后一天
let currentYearLastDate = new Date(currentYear, 11, 31);
timeRange.push(dateRangeUtils.formatDate(currentYearFirstDate));
timeRange.push(dateRangeUtils.formatDate(currentYearLastDate));
return timeRange;
},
format:(date,fmt)=>{
let o = {
"M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日
"h+" : date.getHours(), //小时
"m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(let k in o) {
if(new RegExp("("+ k +")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
},
////获取两个时间相邻的数组 type:目前可传"yyyy-MM-dd hh" "yyyy-MM-dd" "yyyy-MM"格式的时间
getTimeArr:(begin,end,type,interval)=>{
let arr=[];
let beginDate;
let endDate;
let msCount;
if(type=="yyyy-MM-dd hh"){//设置小时间隔
beginDate=new Date(begin+" 00:00");
endDate=new Date(end+" 23:59");
msCount=interval*60*60*1000; //1小时 2小时 3小时
}else if(type=="yyyy-MM-dd hh:mm"){//设置分钟间隔
beginDate=new Date(begin+" 00:00");
endDate=new Date(end+" 23:59");
msCount=interval*60*1000; //30分钟 10分钟 5分钟 15分钟
}else if(type=="yyyy-MM-dd"){//设置天间隔
beginDate=new Date(begin+" 00:00");
endDate=new Date(end+" 00:00");
msCount=interval*24*60*60*1000; //1天 2天 3天
}else if(type=="yyyy-MM"){//获取月间隔
let startDate=begin.split("-");
let endDate1=end.split("-");
let intervalMonth = (parseInt(endDate1[0]*12)+parseInt(endDate1[1])) - (parseInt(startDate[0]*12)+parseInt(startDate[1]));
arr=dateRangeUtils.getMonthArr(end,intervalMonth+1);
return arr;
}else if(type=="yyyy"){//获取年间隔
for(let i=parseInt(begin);i<=parseInt(end);i++){
arr.push(i.toString());
}
return arr;
}
let beginMs=beginDate.getTime();
let endMs=endDate.getTime();
for(let i=beginMs;i<=endMs;i+=msCount){
if(type=="yyyy-MM-dd hh"){
arr.push(dateRangeUtils.format(new Date(i),type)+":00");
}else if(type=="yyyy-MM-dd hh:mm"){
arr.push(dateRangeUtils.format(new Date(i),type));
}
else if(type=="yyyy-MM-dd"){
arr.push(dateRangeUtils.format(new Date(i),type));
}
}
return arr;
},
//得到最近n个月份的数组
getMonthArr:(sDate,n)=>{
let arr=[];
sDate=sDate.slice(0,7);
arr.push(sDate);
while(n>1){
arr.unshift(dateRangeUtils.getBeforMonth(sDate));
sDate=dateRangeUtils.getBeforMonth(sDate);
n--;
}
return arr;
},
getBeforMonth:(date)=>{
let lastMonth="";
let year=date.split("-")[0],month=date.split("-")[1];
if(month==1){
lastMonth=(year-1)+"-"+12;
}else{
lastMonth=year+"-"+(month-1<10?('0'+(month-1)):month-1);
}
return lastMonth;
}
}
export default dateRangeUtils;
相关推荐
FA 新增资产API Demo
DECLARE l_trans_rec fa_api_types.trans_rec_type; l_dist_trans_rec fa_api_types.trans_rec_type; l_asset_hdr_rec fa_api_types.asset_hdr_rec_type; l_asset_desc_rec fa_a
vue-js实现日期加减,年月日,及单位换算。
1.点击年份加一 2.点击年份减一 3.点击月份加一 4.点击月份减一 5.点击天数加一 6.点击天数减一
手把手拆解固态电池成本:2030年真能比液态电池便宜30%吗?
本文深度解析固态电池成本结构,探讨2030年实现比液态电池便宜30%的可行性路径。通过拆解正极材料、负极材料和固态电解质的成本演变,分析关键技术对降本的影响,并预测产业链协同效应下的成本优化趋势。文章指出,在材料创新、设备国产化和政策支持等多重因素推动下,固态电池有望在2030年实现显著降本目标。
根据时间段获取时间轴数组
/** * * 只精确到分钟,精确到秒可以自行添加 * @param {any} start 开始时间 (例 9:30) * @param {any} end 结束时间 (例 15:00) * @returns */ function autoTimeline(start, end) { var timeline = [], ...
扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)
本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。
原理图分享二(信盈达CorexM4核心板STM32F407VGT6)
这是第二张板子的原理图分享,这也是当时大学里学习的一个板子。 原理图分享二(信盈达CorexM4核心板STM32F407VGT6)
已知起始时间和结束时间,得到期间的时间段,数组表示
1、年月日 2、年月 3、年、季度 4、年 一、得到年月日 1 <script> 2 // 获取间隔天数 3 function getDays(day1, day2) { 4 // 获取入参字符串形式日期的Date型日期 5 var st = day1....
AAC编解码器在实时通信中的性能对比与应用选择
本文深入分析了AAC编解码器在实时通信中的性能优化,重点对比了faac、faad2与fdk-aac三大开源方案在WebRTC场景下的表现。通过实测数据揭示其在延迟、音质和资源消耗等关键指标的差异,并提供场景化选型建议与调优技巧,帮助开发者提升实时音视频通信质量。
传入开始与结束时间获取时间数组
引入jquery可直接测试: //根据开始结束日期 获取数组 Date.prototype.format=function (){ var s=''; s+=this.getFullYear()+'-'; // 获取年份。 var month = this.getMonth()+1; s+...
从零开始讲DDR(8)——AXI 接口MIG 使用(1)
我们简单拆解了MIG AXI接口中测试文件的整体框架,首先在sim_tb_top.sv文件中例化了DDR模型和example_top。在example_top中,又例化了MIG IP和一个流量产生器ddr4_v2_2_8_axi_tg_top。在ddr4_v2_2_8_axi_tg_top中的主要功能是分别例化了boot_mode_gen,prbs_mode_gen,custom_mode_gen和axi_opcode_gen。
【机器学习-17】数据变换---小波变换特征提取及应用案列介绍
小波变换作为一种前沿的数据分析工具,近年来在信号分析领域崭露头角。小波分析的理论和方法凭借其独特优势,在信号处理、图像处理、语音处理、模式识别以及量子物理等多个领域得到了广泛的应用,堪称近年来在工具及方法上的重大突破。小波变换以其多分辨率的特性,在时域和频域均展现出对信号局部特征的强大表征能力。通过伸缩和平移等运算过程,小波变换能够对信号进行多尺度聚焦分析,为非平稳信号的时频分析提供了一种有效手段。它允许我们由粗及细地逐步观察信号,从而精准地提取出有用信息。
返回时间段内各种时间间隔的数组
这里时间插件你们自己定义 代码如下 Date.prototype.Format = function(fmt)//日期格式 { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), /...
智元机器人开源具身仿真框架 Genie Sim 入门教程
GenieSim是AgiBot推出的具身智能仿真框架,提供完整闭环开发管道,包括轨迹生成、模型训练和基准测试。框架支持Docker容器化部署,要求Ubuntu 22.04和NVIDIA硬件环境。主要功能涵盖: 支持12种基准测试任务 提供ADER评估框架 集成UniVLA/RDT等基线模型 支持PICO/键盘遥操作 具备轨迹记录回放功能 提供完整API控制接口 开发者可通过Hugging Face获取场景资产,使用标准化ROS主题与仿真环境交互。框架特别优化了碰撞检测和抓取物理模拟,适用于从简单抓取到复杂操
mysql query日期_如何获取mysql中两个日期之间的日期列表select query
尝试:select * from(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from(select 0 i union select 1 union select 2 union select 3 union select 4 union select ...
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
php根据开始时间和结束时间生成每天时间段的时间数组数据
php根据开始时间和结束时间生成每天时间段的时间数组数据 /** * 根据时间戳的开始时间 和结束时间 生成每天的时间信息 * @param $format_date * @return array */ protected function day_time_array($format_date){ $start_time = $form...
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
js获取今天,昨天,本周,上周,本月,上月开始时间和结束时间
输出时间样式为 yyyy-mm-dd hh:mm:ss,不满 2 位则前面添 0; 前面添 0 方法 function add0(m){ return m<10?'0'+m:m }; 获取某月天数 function getMonthDays(year, month) { var new_year = year; //取当前的年份 var ne...
【vue】【date-picker】时间范围模板 获取开始时间和结束时间
使用elementUI的日期选择器,有一个选择日期范围的模板。也就是使用一个选择器但是包括了开始时间和结束时间,那么如何获取到开始时间和结束时间? elementUI组件库连接–需要自取 1、首先,在el-date中,需要注意v-model设置,themetime是自定义的名字,随便写一个就行 <el-date-picker v-model="ruleForm.themetime" type="datetimerange" .
PHP 获取时间段内每天的开始结束时间
时间段内每天的开始结束时间 $starttime = strtotime('2019-10-01');//开始时间 $endtime = strtotime('2019-10-05');//结束时间 while ($endtime >= $starttime) { $temp_time = $starttime; echo date('Y-m-d H:i:s',...
php 获取两个月份之间的所有月份数组
转载自 https://blog.youkuaiyun.com/rovast/article/details/50281145 /** * 计算出两个日期之间的月份 * @author Eric * @param [type] $start_date [开始日期,如2014-03] * @param [type] $end_date [结束日期,如2015-12] * @param str...
layui时间选择器开始时间和结束时间在同一年
layui.use('laydate', function(){ var laydate = layui.laydate; var starttime = laydate.render({ elem: '#starttime', theme: '#007dcf', position: 'fixed', btns: ['confirm'], min:'2018-01-01', done: functio
对Element DatePicker时间组件的封装,时间组件开始时间和结束时间绑定
对element 时间插件的开始时间和结束时间绑定,不用自己麻烦处理
PHP&获取两个时间日期之间得所有日期
/** * 获取两个时间之间的日期 * @param $startDate * @param $endDate * @return array */ function getDatesBetweenTwoDays($startDate, $endDate) { $dates = []; if (strtotime($startDate) > strtotime($e...
php求两个日期之间每个月的开始和结束时间
function timeBetween($start, $end){ $d_s = strtotime(date('Y-m', $start)); $d_e = strtotime(date('Y-m', $end)); $num = 1; $dates = array(); while ($start if($d_s == $d_e){
Java获取两个时间之间的所有时间集合
取两个时间之间的所有时间集合 比如2021/12/01 14:01——2021/12/01 15:01 public class Test { public static List<String> getDate(String startTime, String endTime){ //定义时间格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
php 获取某月日期存入数组,取出一个时间段内每个月的开始时间和结束时间存入到数组中...
要求:如果时间段的开始时间大于每个月的1号,则把时间段的开始时间存入到数组中,反之,则把1号存入到数组中,如果时间段的结束时间大于每个月的最后一天,则把时间段的结束时间存入到数组中,反之,则把每个月的最后一天存入到数组中注意:如果是整月,则设置falg字段标志...
获取日期的开始时间,结束时间
String day = "2020-03-24"; String s = DateUtil.formatDateTime(DateUtil.parseDate(day)); System.out.println("s========="+s); String s1 = DateUtil.formatDateTime(DateUtil.getEndOfDate(Da...
2142



被折叠的 条评论
为什么被折叠?



