/**
* 获取对应的日期开始和结束时间
* @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;
相关推荐
高通camera调试经验总结
修改AF对焦模式 adb shell setprop vendor.debug.camera.af.manual 2 //使能手动对焦 adb shell setprop vendor.debug.camera.af.manual 0 //使能自动对焦
vue-js实现日期加减,年月日,及单位换算。
1.点击年份加一 2.点击年份减一 3.点击月份加一 4.点击月份减一 5.点击天数加一 6.点击天数减一
CVPR 2027 投稿规划:基于近3年录用率与截稿周期的5步时间管理法
本文为计算机视觉研究者提供CVPR 2027投稿的完整规划指南,基于近三年录用率与截稿周期数据,提出五步时间管理法。涵盖选题策略、实验设计、论文写作、同行评审到最终提交的全流程优化,特别针对CVPR日益激烈的竞争环境(2024年投稿量达11532篇,录取率仅23.6%)提供实用解决方案,帮助研究者提升投稿成功率。
根据时间段获取时间轴数组
/** * * 只精确到分钟,精确到秒可以自行添加 * @param {any} start 开始时间 (例 9:30) * @param {any} end 结束时间 (例 15:00) * @returns */ function autoTimeline(start, end) { var timeline = [], ...
[EDA系列]二、Altium Designer异形封装实战:从CAD导入到PCB布局
本文详细介绍了在Altium Designer中实现异形封装的实战流程。通过五步核心操作,将CAD软件中的复杂二维轮廓精准导入并转换为可直接用于PCB布局的智能封装,解决了不规则形状铺铜的难题,特别适用于射频天线、传感器外壳等对机械尺寸有严苛要求的设计场景。
版图提取的spice网表中参数含义及二级效应STI/WPE
寄生电阻、寄生电容可以从版图提出的.sp文件中看, ad area of drain 面积 as area of source pd perimeter of drain 周长,PS PD周长都不计算与栅极接触的部分 ps perimeter of source nrd 漏扩散区等效方块数 nrs 源扩散区等效方块数 sa ...
已知起始时间和结束时间,得到期间的时间段,数组表示
1、年月日 2、年月 3、年、季度 4、年 一、得到年月日 1 <script> 2 // 获取间隔天数 3 function getDays(day1, day2) { 4 // 获取入参字符串形式日期的Date型日期 5 var st = day1....
JaCoCo报告聚合的5个常见坑点排查指南:从单模块到多模块的完整避坑手册
本文详细解析了JaCoCo在多模块Maven项目中生成聚合报告时的5个常见问题,包括多模块报告聚合失效、覆盖率数据不一致、增量构建导致的覆盖率丢失等,并提供了具体的配置示例和解决方案。帮助开发者高效排查和解决JaCoCo报告聚合中的各种疑难杂症,提升代码覆盖率分析的准确性和效率。
传入开始与结束时间获取时间数组
引入jquery可直接测试: //根据开始结束日期 获取数组 Date.prototype.format=function (){ var s=''; s+=this.getFullYear()+'-'; // 获取年份。 var month = this.getMonth()+1; s+...
uCOS中的消息邮箱(:task与task之间传递一个数据(数据缓冲区))
程序需求,需要完成task与task之间 字符数组的数据传输 比如:在ucos中,串口2接收的字符数组是不定时的&不定长的;只有当接收到数据的时候_才将数据赋值给新数组 具体的程序示意如下: 图1:消息邮箱测试中的 向消息邮箱发送消息(OSMboxPost(Str_Box,(void*)rec);//发送消息--(向 消息邮箱_msg_key发送消息) ),实际项目需求的
FD.io/VPP — VPP 的实现原理解析
目录 文章目录目录VPPVPP 的关键创新技术数据报文的矢量处理标量报文处理方式I-cache miss 问题矢量数据报文处理方式标量 v.s. 矢量报文处理流程Packet Processing Graph(数据报文处理图)Packet Processing Graph 的处理流程Graph Node Plugin 机制 VPP WIKI:https://wiki.fd.io/view/VPP Docs:https://fd.io/docs/vpp/master/index.html Github:ht
返回时间段内各种时间间隔的数组
这里时间插件你们自己定义 代码如下 Date.prototype.Format = function(fmt)//日期格式 { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), /...
(2)NPW(监控片)【中】---业务场景精讲
自己在日常工作当中,由于非产线人员出生,对NPW的知识一直一知半解,业务场景认识的不够透彻,做系统的时候很难理解甲方的NPW业务应用,特收集了不少关于NPW的一些业务场景,下面都是一些摘抄,大家关注我标红标粗的部分,
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 ...
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
php根据开始时间和结束时间生成每天时间段的时间数组数据
php根据开始时间和结束时间生成每天时间段的时间数组数据 /** * 根据时间戳的开始时间 和结束时间 生成每天的时间信息 * @param $format_date * @return array */ protected function day_time_array($format_date){ $start_time = $form...
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
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...
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
【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...
1万+



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



