dealDate:日期处理(type类型,date日期)

const moment = require('moment');

if (type === "0") {
return date + " 00:00:00#" + date + " 23:59:59";
} else if (type === "1") {
let now = new Date(date);
let nowDayOfWeek = now.getDay(); // 本周的第几天
let nowDay = now.getDate(); // 当前日
// let nowMonth = date.substring(date.indexOf('-'), date.lastIndexOf('-')); // 当前月
let nowMonth = now.getMonth(); // 当前月
let nowYear = now.getYear(); // 当前年
nowYear += (nowYear < 2000) ? 1900 : 0;
let weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);
let weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek));
return moment(weekStartDate).toISOString().substring(0, 10) + " 00:00:00#" + moment(weekEndDate).toISOString().substring(0, 10) + " 23:59:59";
} else if (type === "2") {
let now = new Date(date);
let nowMonth = now.getMonth(); // 当前月
let nowYear = now.getYear(); // 当前年
nowYear += (nowYear < 2000) ? 1900 : 0;
//获得本月的开始时间
let monthStartDate = new Date(nowYear, nowMonth, 2);
//获得本月天数
let monthEnd = new Date(nowYear, nowMonth + 1, 3);
let days = (monthEnd - monthStartDate) / (1000 * 60 * 60 * 24);
//获得本月的结束时间
let monthEndDate = new Date(nowYear, nowMonth, days);
return moment(monthStartDate).toISOString().substring(0, 10) + " 00:00:00#" + moment(monthEndDate).toISOString().substring(0, 10) + " 23:59:59";
} else if (type === "3") {
let now = new Date(date);
let nowMonth = now.getMonth(); // 当前月
let nowYear = now.getYear(); // 当前年
nowYear += (nowYear < 2000) ? 1900 : 0;
let m = 0;
console.log('nowMonth', nowMonth);
if (nowMonth < 3) {//012
m = 0;
} else if (2 < nowMonth && nowMonth < 6) {//345
m = 3;
} else if (5 < nowMonth && nowMonth < 9) {//678
m = 6;
} else if (nowMonth >= 9) { //9 10 11
m = 9;
}
let quarterStartDate = new Date(nowYear, m, 2);
let quarterEndDate = new Date(nowYear, (m === 9 ? 0 : m + 3), 2).getTime() - (60 * 60 * 24 * 1000);
return moment(quarterStartDate).toISOString().substring(0, 10) + " 00:00:00#" + moment(new Date(Number(quarterEndDate))).toISOString().substring(0, 10) + " 23:59:59";
} else if (type === "4") {
let now = new Date(date);
let nowYear = now.getYear(); // 当前年
nowYear += (nowYear < 2000) ? 1900 : 0;
return nowYear + "-01-01 00:00:00#" + nowYear + "-12-31 23:59:59";
}

type类型

[
{
value:"0",
desp:"日报表"
},
{
value:"1",
desp:"周报表"
},
{
value:"2",
desp:"月报表"
},
{
value:"3",
desp:"季报表"
},
{
value:"4",
desp:"年报表"
}
]

date日期

2022-09-25

vue获取选中日期的日、周、月、季、年起始结束时间的更多相关文章

  1. Flex自定义组件开发之日周月日期选择日历控件

    原文:Flex自定义组件开发之日周月日期选择日历控件         使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的 ...

  2. js获取选中日期的当周的周一和周日

    js获取选中日期的当周的周一和周日 第一种方法(推荐): function getWeekStr(str) { // 将字符串转为标准时间格式 str2 = Date.parse(str); let ...

  3. 获取某日期后一周、一月、一年的日期 php

    //获取某日期后三周同一天日期public static function getNextDate($date){ $return = [ date( 'Y-m-d', strtotime(" ...

  4. iOS获取某个日期后n个月的日期

    一.给一个时间,给一个数,正数是以后n个月,负数是前n个月: -(NSDate *)getPriousorLaterDateFromDate:(NSDate *)date withMonth:(NSI ...

  5. MySql查询日周月

    常用计算日期的函数 日 date(日期) = CURDATE() 自然周 YEARWEEK(date_format(日期,'%Y-%m-%d') , 1) = YEARWEEK(now() , 1) ...

  6. pg按日,周,月进行数据统计

    pg数据库按周,月统计数据 SELECT date_trunc('WEEK', insert_time) as insertDate, SUM(data_increment) as dataTotal ...

  7. Java获取上周,本周,本月,本年,开始结束时间 。日期工具类

    由于获取日期经常会使用到,所有我自己写了一个工具类 1.基本上能用上的都写出来了,包括:1)获取当天的开始时间 2)获取当天的结束时间 3)获取昨天的开始时间 4)获取昨天的结束时间 5)获取明天的开 ...

  8. java获取指定日期的年、月、日的值

    参数:String dateStr = '2016-05-18'; 1.获取string对应date日期: Date date = new SimpleDateFormat("yyyy-MM ...

  9. mysql按日/周/月统计

    一.mysql按日统计 ) count ' and start_time > '2017-06-28' group by days; 二.mysql按周统计 ) ' group by weeks ...

  10. .net 获取当前周及根据年和周获取起始结束时间

    获取当前日期周数 int str = new System.Globalization.GregorianCalendar().GetWeekOfYear(System.DateTime.Now, S ...

随机推荐

  1. 我是一名数学专业的应届博士,我该如何选择offer?

    这是IC男奋斗史的第5篇原创 关注公众号[IC男奋斗史],让我们一起撸起袖子加油干! 本文1396字,预计阅读4分钟. 本文来自私信咨询问答.杰哥已征得对方同意把内容展示在公众平台. 感谢对杰哥的信任 ...

  2. 2025 ZJ 中考数学压轴题的一种解析几何做法

    提示:文章含有较多 \(\LaTeX\),可能加载时间较长,125% 缩放页面,更好的公式体验. 同步发表于 洛谷 [题目描述] (知乎的,侵删,红色的是我加的线,帮助 STD 的讲解) 这里我们只考 ...

  3. mac下Homebrew使用国内源

    背景MacOS系统使用Homebrew官方地址时,报错: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homeb ...

  4. java 中的函数参数传递方式

    简介 值传递. 但是对于基本数据类型, 传递的是就是数值, 如果不是基本数据类型, 传递的就是对象的地址,也就是将对象的地址拷贝了一份传递过去. 参考链接 https://www.cnblogs.co ...

  5. 洛谷 U388010 题解

    洛谷 U388010 题解 link:https://www.luogu.com.cn/problem/U388010 Sol 首先,我们看到这一条件: 对于每一个 \(1 \le i \le n\) ...

  6. OS-MacOS-MacBook Pro 的电源管理 + 主动切换独立 或 集成显卡的 gpuswitch 选项;

    通过 MacOS 的: System Information可以查看显卡以及所有的硬件和软件的情况: Activity Monitor 可以监控系统的Energy / CPU / Memory / N ...

  7. SciTech-BigDataAIML-CV+CG-Digital Image Processing-编辑与合成RGBA图片与视频:RGB图片转换成RGBA:增加Alpha Mask(透明遮罩, 即Alpha Channel透明度通道)

    层层堆叠RGBA图片层就可实时修改图片与视频流 用AI自动生成RGBA格式的PNG图片:一层层堆叠. 这也是Adobe Photoshop的Mask原理? https://learnopencv.co ...

  8. C#解析JSON数据全攻略

    还在为C#处理网络API返回的复杂JSON数据头疼吗?据统计,90%的开发者都曾在JSON解析上栽过跟头! 本文将手把手教你用C#轻松玩转JSON数据:- HttpClient获取网络JSON数据- ...

  9. 进阶篇:3.1.1.4)DFM注塑-热熔

    本章目的:了解塑胶件热熔装配方式的设计要点. 1.热熔的概念和原理 热熔是塑胶件与塑胶件或与其他零件,如金属件.印制电路板等进行装配的一种方法.热熔的原理:在塑胶件上有称为热熔柱的局部凸起,在需装配的 ...

  10. Win10专业版关机出现explorer.exe错误的问题

    有一位深度技术的win10专业版的用户,反馈说在电脑关机时出现了explorer.exe应用程序错误的提示框,这是个什么情况?又如何解决呢?本文中,深度官网小编就来分享给大家详细的处理方法. Win1 ...