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

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 阅读详情

相关推荐

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

chosen1brain的专栏 2142

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

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

CCKing7的博客 1万+

手把手拆解固态电池成本:2030年真能比液态电池便宜30%吗?

本文深度解析固态电池成本结构,探讨2030年实现比液态电池便宜30%的可行性路径。通过拆解正极材料、负极材料和固态电解质的成本演变,分析关键技术对降本的影响,并预测产业链协同效应下的成本优化趋势。文章指出,在材料创新、设备国产化和政策支持等多重因素推动下,固态电池有望在2030年实现显著降本目标。

kite3的博客 403

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

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

448

扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)

本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。

xx56789的博客 520

原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

这是第二张板子的原理图分享,这也是当时大学里学习的一个板子。 原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

让学习成为一种习惯 6894

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

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

diaoluoshi3857的博客 1145

AAC编解码器在实时通信中的性能对比与应用选择

本文深入分析了AAC编解码器在实时通信中的性能优化,重点对比了faac、faad2与fdk-aac三大开源方案在WebRTC场景下的表现。通过实测数据揭示其在延迟、音质和资源消耗等关键指标的差异,并提供场景化选型建议与调优技巧,帮助开发者提升实时音视频通信质量。

weixin_29210727的博客 389

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

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

qq_38669394的博客 1457

从零开始讲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。

apple_53311083的博客 1587

【机器学习-17】数据变换---小波变换特征提取及应用案列介绍

小波变换作为一种前沿的数据分析工具,近年来在信号分析领域崭露头角。小波分析的理论和方法凭借其独特优势,在信号处理、图像处理、语音处理、模式识别以及量子物理等多个领域得到了广泛的应用,堪称近年来在工具及方法上的重大突破。小波变换以其多分辨率的特性,在时域和频域均展现出对信号局部特征的强大表征能力。通过伸缩和平移等运算过程,小波变换能够对信号进行多尺度聚焦分析,为非平稳信号的时频分析提供了一种有效手段。它允许我们由粗及细地逐步观察信号,从而精准地提取出有用信息。

qq_38614074的博客 2万+

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

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

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

智元机器人开源具身仿真框架 Genie Sim 入门教程

GenieSim是AgiBot推出的具身智能仿真框架,提供完整闭环开发管道,包括轨迹生成、模型训练和基准测试。框架支持Docker容器化部署,要求Ubuntu 22.04和NVIDIA硬件环境。主要功能涵盖: 支持12种基准测试任务 提供ADER评估框架 集成UniVLA/RDT等基线模型 支持PICO/键盘遥操作 具备轨迹记录回放功能 提供完整API控制接口 开发者可通过Hugging Face获取场景资产,使用标准化ROS主题与仿真环境交互。框架特别优化了碰撞检测和抓取物理模拟,适用于从简单抓取到复杂操

2506_90492529的博客 2540

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

php根据开始时间和结束时间生成每天时间段的时间数组数据

php根据开始时间和结束时间生成每天时间段的时间数组数据 /** * 根据时间戳的开始时间 和结束时间 生成每天的时间信息 * @param $format_date * @return array */ protected function day_time_array($format_date){ $start_time = $form...

小白本无忧 2487

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

dwz100916007的博客 3851

【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、付费专栏及课程。

余额充值