获取常用时间的开始时间和结束时间及两个时间之间时间数组

NC65编写保存前事件,实现开始时间不早于结束时间 完整代码链接:https://download.youkuaiyun.com/download/d_c_hao/10910140 方法一: ShowUpableBillForm bill= (ShowUpableBillForm)super.getEditor(); int rows= bill.getBillCardPanel().getBodyPanel().getTable().ge... 阅读详情
/**
 * 获取对应的日期开始和结束时间
 * @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;
php获取当天的开始时间和结束时间 //当天开始时间 $start_time=strtotime(date("Y-m-d",time())); //当天结束之间 $end_time=$start_time+60*60*24; 然后在数组中就可以这样写了 gt>$start_time and et< $end_time 阅读详情

相关推荐

高通camera调试经验总结

修改AF对焦模式 adb shell setprop vendor.debug.camera.af.manual 2 //使能手动对焦 adb shell setprop vendor.debug.camera.af.manual 0 //使能自动对焦

weixin_43381364的博客 1万+

vue-js实现日期加减,年月日,及单位换算。

1.点击年份加一 2.点击年份减一 3.点击月份加一 4.点击月份减一 5.点击天数加一 6.点击天数减一

CCKing7的博客 1万+

CVPR 2027 投稿规划:基于近3年录用率与截稿周期的5步时间管理法

本文为计算机视觉研究者提供CVPR 2027投稿的完整规划指南,基于近三年录用率与截稿周期数据,提出五步时间管理法。涵盖选题策略、实验设计、论文写作、同行评审到最终提交的全流程优化,特别针对CVPR日益激烈的竞争环境(2024年投稿量达11532篇,录取率仅23.6%)提供实用解决方案,帮助研究者提升投稿成功率。

weixin_34079177的博客 1152

根据时间段获取时间轴数组

/** * * 只精确到分钟,精确到秒可以自行添加 * @param {any} start 开始时间 (例 9:30) * @param {any} end 结束时间 (例 15:00) * @returns */ function autoTimeline(start, end) { var timeline = [], ...

448

[EDA系列]二、Altium Designer异形封装实战:从CAD导入到PCB布局

本文详细介绍了在Altium Designer中实现异形封装的实战流程。通过五步核心操作,将CAD软件中的复杂二维轮廓精准导入并转换为可直接用于PCB布局的智能封装,解决了不规则形状铺铜的难题,特别适用于射频天线、传感器外壳等对机械尺寸有严苛要求的设计场景。

weixin_29194817的博客 144

版图提取的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 ...

qq_40007892的博客 6552

已知起始时间和结束时间,得到期间的时间段,数组表示

1、年月日 2、年月 3、年、季度 4、年 一、得到年月日 1 <script> 2 // 获取间隔天数 3 function getDays(day1, day2) { 4 // 获取入参字符串形式日期的Date型日期 5 var st = day1....

diaoluoshi3857的博客 1145

JaCoCo报告聚合的5个常见坑点排查指南:从单模块到多模块的完整避坑手册

本文详细解析了JaCoCo在多模块Maven项目中生成聚合报告时的5个常见问题,包括多模块报告聚合失效、覆盖率数据不一致、增量构建导致的覆盖率丢失等,并提供了具体的配置示例和解决方案。帮助开发者高效排查和解决JaCoCo报告聚合中的各种疑难杂症,提升代码覆盖率分析的准确性和效率。

weixin_27918373的博客 250

传入开始与结束时间获取时间数组

    引入jquery可直接测试:      //根据开始结束日期 获取数组      Date.prototype.format=function (){         var s='';         s+=this.getFullYear()+'-'; // 获取年份。                  var month = this.getMonth()+1;         s+...

qq_38669394的博客 1457

uCOS中的消息邮箱(:task与task之间传递一个数据(数据缓冲区))

程序需求,需要完成task与task之间  字符数组的数据传输 比如:在ucos中,串口2接收的字符数组是不定时的&不定长的;只有当接收到数据的时候_才将数据赋值给新数组 具体的程序示意如下: 图1:消息邮箱测试中的     向消息邮箱发送消息(OSMboxPost(Str_Box,(void*)rec);//发送消息--(向 消息邮箱_msg_key发送消息) ),实际项目需求的

faguoduifangui的博客 4540

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

烟云的计算 2593

返回时间段内各种时间间隔的数组

这里时间插件你们自己定义 代码如下 Date.prototype.Format = function(fmt)//日期格式 { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), /...

爱前端灬不爱恋爱的博客 1476

(2)NPW(监控片)【中】---业务场景精讲

自己在日常工作当中,由于非产线人员出生,对NPW的知识一直一知半解,业务场景认识的不够透彻,做系统的时候很难理解甲方的NPW业务应用,特收集了不少关于NPW的一些业务场景,下面都是一些摘抄,大家关注我标红标粗的部分,

阿拉伯梳子的专栏 1586

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 ...

weixin_34039159的博客 184

精雕软件(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...

小白本无忧 2487

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...

dwz100916007的博客 3851

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【vue】【date-picker】时间范围模板 获取开始时间和结束时间

使用elementUI的日期选择器,有一个选择日期范围的模板。也就是使用一个选择器但是包括了开始时间和结束时间,那么如何获取到开始时间和结束时间? elementUI组件库连接–需要自取 1、首先,在el-date中,需要注意v-model设置,themetime是自定义的名字,随便写一个就行 <el-date-picker v-model="ruleForm.themetime" type="datetimerange" .

pursuingSun的博客 4642

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',...

流响出疏桐 975

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...

清晨一场梦 9304

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

qq_41413581的博客 3945

对Element DatePicker时间组件的封装,时间组件开始时间和结束时间绑定

对element 时间插件的开始时间和结束时间绑定,不用自己麻烦处理

阿飞 1737

PHP&获取两个时间日期之间得所有日期

/** * 获取两个时间之间的日期 * @param $startDate * @param $endDate * @return array */ function getDatesBetweenTwoDays($startDate, $endDate) { $dates = []; if (strtotime($startDate) > strtotime($e...

1503

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){

老王的技术摘要 1343

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");

老达摩的博客 2487

php 获取某月日期存入数组,取出一个时间段内每个月的开始时间和结束时间存入到数组中...

要求:如果时间段的开始时间大于每个月的1号,则把时间段的开始时间存入到数组中,反之,则把1号存入到数组中,如果时间段的结束时间大于每个月的最后一天,则把时间段的结束时间存入到数组中,反之,则把每个月的最后一天存入到数组中注意:如果是整月,则设置falg字段标志...

weixin_28972355的博客 348

获取日期的开始时间,结束时间

String day = "2020-03-24"; String s = DateUtil.formatDateTime(DateUtil.parseDate(day)); System.out.println("s========="+s); String s1 = DateUtil.formatDateTime(DateUtil.getEndOfDate(Da...

正在改bug的博客 562
上一篇: MySQL按天,按周,按月,按时间段统计【转载】
下一篇: 使用formData向后台传递数组对象
tyjlearning
博客等级 码龄11年 24粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值