获取某个时间开始 之后的 N次[周几,周几]
废话不多说,直接上菜!
调用函数代码举例
//PS :这里需要注意的是 周日 是 0 !!!!!
console.log(getBeforeDate(-10000)) //一万天之后的日期
console.log(getWeek('2019-07-03',[2,3],20))//从'2019-07-03' 开始获取之后 20 个 周二、周三的日期
JS代码
/**
* 获取某个时间开始 之后的 N次[周几,周几]
* @param {Object} begin 开始时间
* @param {Object} week_arr 需要获取的周几数组
* @param {Object} Max 需要获取数组最大长度
*/
function getWeek (begin, week_arr,Max){
var dateArr = new Array();
var stimeArr = begin.split("-");//=>["2018", "01", "01"]
var etimeArr = getBeforeDate(-10000).split("-");//=>["2018", "01", "30"] 这里我给了一个10000天后的一起可更具需求更改
var stoday = new Date();
stoday.setUTCFullYear(stimeArr[0], stimeArr[1]-1, stimeArr[2]);
var etoday = new Date();
etoday.setUTCFullYear(etimeArr[0], etimeArr[1]-1, etimeArr[2]);
var unixDb = stoday.getTime();//开始时间的毫秒数
var unixDe = etoday.getTime();//结束时间的毫秒数
for (var k = unixDb; k <= unixDe;) {
//达到最大次数时,结束循环
if(dateArr.length==Max){
break;
}else{
let needJudgeDate = msToDate(parseInt(k)).withoutTime;
//不加这个if判断直接push的话就是已知时间段内的所有日期
$.each(week_arr, function(i,o) {
if (new Date(needJudgeDate).getDay() === o) {
dateArr.push(needJudgeDate);
}
})
k = k + 24*60*60*1000;
}
}
return dateArr;
}
//根据毫秒数获取日期
function msToDate (msec) {
let datetime = new Date(msec);
let year = datetime.getFullYear();
let month = datetime.getMonth();
let date = datetime.getDate();
let hour = datetime.getHours();
let minute = datetime.getMinutes();
let second = datetime.getSeconds();
let result1 = year +
'-' +
((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
'-' +
((date + 1) < 10 ? '0' + date : date) +
' ' +
((hour + 1) < 10 ? '0' + hour : hour) +
':' +
((minute + 1) < 10 ? '0' + minute : minute) +
':' +
((second + 1) < 10 ? '0' + second : second);
let result2 = year +
'-' +
((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
'-' +
((date + 1) < 11 ? '0' + date : date);
let result = {
hasTime: result1,
withoutTime: result2
};
return result;
}
//-----[获取前n天的日期]
function getBeforeDate(n) {
var n = n;
var d = new Date();
var year = d.getFullYear();
var mon = d.getMonth() + 1;
var day = d.getDate();
if(day <= n) {
if(mon > 1) {
mon = mon - 1;
} else {
year = year - 1;
mon = 12;
}
}
d.setDate(d.getDate() - n);
year = d.getFullYear();
mon = d.getMonth() + 1;
day = d.getDate();
s = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);
return s;
}
//-----[获取前n天的日期END]
获取某个时间开始 之后的 N次[周几,周几]的更多相关文章
- oracle 获取系统时间(转)
Oracle中如何获取系统当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; ORACLE里获取一个时间的年.季. ...
- Orcle如何获取当前时间
Oracle获取当月所有日期: SELECT TRUNC(SYSDATE, 'MM') + ROWNUM - 1 FROM DUAL CONNECT BYROWNUM <= TO_NUMBER( ...
- iOS中获取当前时间,设定时间,并算出差值
NSDate *date = [NSDate date];//获取当前时间 NSTimeZone *zone = [NSTimeZone systemTimeZone];//修改时区 NSIntege ...
- Js获取当前日期时间及其它操作
Js获取当前日期时间及其它操作var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份 ...
- 【转】Js获取当前日期时间及格式化操作
(转自:http://www.cnblogs.com/qinpengming/archive/2012/12/03/2800002.html) var myDate = new Date(); myD ...
- PHP 获取中国时间,即上海时区时间
/** * 获取中国时间,即上海时区时间 * @param <type> $format * @return <type> */ function getChinaTime($ ...
- C#获取北京时间与设置系统时间
获取北京时间 public static DateTime GetBeijingTime() { DateTime dt; // 返回国际标准时间 // 只使用 timeServers 的 IP 地址 ...
- jquery 获取日期时间
获取JavaScript 的时间使用内置的Date函数完成 var mydate = new Date();mydate.getYear(); //获取当前年份(2位)mydate.getFullYe ...
- 使用 jquery 获取当前时间的方法
我们在写一些效果时,经常要用到 jquery 获取当前时间,但是jquery 目前并没有提供直接获取当前时间的 api 或者函数,所以我们还是得用原生的 javascript 时间对象 Date 来获 ...
- java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)
一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start= ...
随机推荐
- js数据类型及方法
数据类型及方法 数据类型 number 不区分整数和浮点数 string 字符串 boolean true / false 布尔 object null 数组 function 函数 undefine ...
- [React]Hook初探
Hook是什么 Hook是React从16.8开始支持的特性,使用Hook可以在不使用class时使用state Hook支持在不需要修改组件状态的情况下复用逻辑状态,从而解决使用render pro ...
- [讲解]prim算法<最小生成树>
最小生成树的方法一般比较常用的就是kruskal和prim算法 一个是按边从小到大加,一个是按点从小到大加,两个方法都是比较常用的,都不是很难... kruskal算法在本文里我就不讲了,本文的重点是 ...
- linux中的bash
一.bash的简介 操作系统都是需要通过shell跟内核来交互的,常见的shell有GUI.KDE.sh.csh.bash.tsh.zsh等. 而linux中最常用的shell就是bash. 二.ba ...
- JQuery主要内容
一.什么是JQuery jquery全称javaScript Query,是js的一个框架,本质上仍然是js 二.jQuery的特点 支持各种主流浏览器 使用特别简单 拥有丰富的插件和边界的插件扩展机 ...
- 【故障公告】部署在 k8s 上的博客后台昨天与今天在访问高峰多次出现 502
非常抱歉,从昨天上午开始,部署在 k8s 集群上的博客后台(基于 .NET Core 3.1 + Angular 8.2 实现)出现奇怪问题,一到访问高峰就多次出现 502 ,有时能自动恢复,有时需要 ...
- B - 来找一找吧 HihoCoder - 1701(排列组合 + 同余差值相同)
这次到渣渣问桶桶了... 准备给你n个数a1, a2, ... an,桶桶你能从中找出m个特别的整数吗,我想让任意两个之差都是k的倍数. 请你计算有多少种不同的选法.由于选法可能非常多,你只需要输出对 ...
- Android | 教你如何用代码一键实现银行卡绑定
前言 小编前面几期文章分别给大家介绍了用代码实现微笑抓拍.证件照DIY.拍照翻译的功能开发(链接见文章末尾),本次小编给大家带来的是用代码一键实现银行卡识别与绑定功能. 银行卡识别的应用场景 ...
- Shell:Day06.笔记
sed命令 Linux文本处理三剑客 之 sed sed stream EDite 作为行编辑器,对文本进行编辑(以行为单位进行编辑) 注意:sed编辑文件,却不改变原文件: sed的工作原理: ...
- GIT本地安装及汉化
GIT本地安装及汉化过程 1.下载地址: 链接:https://pan.baidu.com/s/1TMxxngZy4Y1De5eC1kSTMg 提取码:e593 2.下载完成之后如下图所示3个文件: ...