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

第一种方法(推荐):

   function getWeekStr(str) {
// 将字符串转为标准时间格式
str2 = Date.parse(str);
let date = new Date(str2);
let month = date.getMonth() + 1;
let week = getWeekFromDate(date);
if (week === 0) {//第0周归于上月的最后一周
month = date.getMonth();
let dateLast = new Date();
let dayLast = new Date(dateLast.getFullYear(), dateLast.getMonth(), 0).getDate();
let timestamp = new Date(new Date().getFullYear(), new Date().getMonth() - 1, dayLast);
week = getWeekFromDate(new Date(timestamp));
}
let time = month + "月第" + week + "周";
return time;
} function getWeekFromDate(date) {
// 将字符串转为标准时间格式
let w = date.getDay();//周几
if (w === 0) {
w = 7;
}
let week = Math.ceil((date.getDate() + 6 - w) / 7) - 1;
return week;
} console.log("2018-02-3---" + getWeekStr("2018-02-3"));
console.log("2018-02-4---" + getWeekStr("2018-02-4"));
console.log("2018-02-5---" + getWeekStr("2018-02-5"));
console.log("2018-02-12---" + getWeekStr("2018-02-12"));
console.log("2018-02-19---" + getWeekStr("2018-02-19"));
console.log("2018-02-28---" + getWeekStr("2018-02-28"));
console.log("2018-03-1---" + getWeekStr("2018-03-1"));
console.log("2018-03-5---" + getWeekStr("2018-11-1"));
console.log("2018-08-27---" + getWeekStr("2018-12-01"));

第二种方法(比较复杂):  

 console.log(getNowDateAndNowWeek(1539187200000));

     /**
* 获取当月的第几周
* a = d = 当前日期
* b = 6 - w = 当前周的还有几天过完(不算今天)
* a + b 的和在除以7 就是当天是当前月份的第几周
*/
function getMonthWeek(a, b, c) { var date = new Date(a, parseInt(b) - 1, c), w = date.getDay(), d = date.getDate();
return Math.ceil(
(d + 6 - w) / 7
);
}; /**
* 获取选择当前的第几周,当前的周一、周日
* time 选择日期的时间戳
*/
function getNowDateAndNowWeek(time) {
//选中的时间戳
var timestamp = time;
var serverDate = new Date(time); //本周周日的的时间
var sundayTiem = timestamp + ((7 - serverDate.getDay()) * 24 * 60 * 60 * 1000)
var SundayData = new Date(sundayTiem);
//年
var tomorrowY = SundayData.getFullYear();
//月
var tomorrowM = (SundayData.getMonth() + 1 < 10 ? '0' + (SundayData.getMonth() + 1) : SundayData.getMonth() + 1);
//日
var tomorrowD = SundayData.getDate() < 10 ? '0' + SundayData.getDate() : SundayData.getDate();
console.log('周日: ' + tomorrowY + '-' + tomorrowM + '-' + tomorrowD); // 本周周一的时间
var mondayTime = timestamp - ((serverDate.getDay() - 1) * 24 * 60 * 60 * 1000)
var mondayData = new Date(mondayTime);
//年
var mondayY = mondayData.getFullYear();
//月
var mondayM = (mondayData.getMonth() + 1 < 10 ? '0' + (mondayData.getMonth() + 1) : mondayData.getMonth() + 1);
//日
var mondayD = mondayData.getDate() < 10 ? '0' + mondayData.getDate() : mondayData.getDate();
var nowWeek = getMonthWeek(tomorrowY, tomorrowM, tomorrowD);
//输出值
var config = {
SunDay: tomorrowY + '/' + tomorrowM + '/' + tomorrowD,
Monday: mondayY + '/' + mondayM + '/' + mondayD,
nowWeek: nowWeek
}
return config;
}

  

js获取选中日期的当周的周一和周日的更多相关文章

  1. 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期

    腾讯云图片鉴黄集成到C#   官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...

  2. JAVA获取当前日期时间所在周的周一和周日日期

    /** * 获取当前时间所在周的周一和周日的日期时间 * @return */ public static Map<String,String> getWeekDate() { Map&l ...

  3. js获取某个日期所在周周一的日期

    第一次写,做个小笔记. 第一步:获取该日期的星期数: 第二步:在该日期上减去他的星期数再减1,(注:星期日获取到的星期数是0): 下面是具体代码: function GetMonday(dd) { v ...

  4. js获取昨天日期

    刚刚js做项目,遇到需要获取昨天日期的问题,网上找了下答案,感觉网上的答案都不太严谨,自己写了个,凑合能用吧,忘大神们抛砖指教. <script type="text/javascri ...

  5. js获取本周日期

    JS获取到本周的日期 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  6. js处理日期的一些整理(js获取给定日期前一天的日期)

    var date = new Date(); alert(date);//获取当前时间 alert(date.getFullYear());//获取当前年分 alert(date.getMonth() ...

  7. 不让复制是不可能的----js获取选中文字

    在360百科.知乎上经常会遇见禁止复制文本的情形,这能挡住一部分人复制,却挡不住程序员的复制. HTML都给我了,难道一小段文本我都拿不下来吗? F12打开控制台,然后选中文本,在控制台下粘贴以下代码 ...

  8. js获取上个月日期

    javascript根据当前日期获取上个月日期 function lastMonthDate(){ var Nowdate = new Date(); var vYear = Nowdate.getF ...

  9. js 获取指定日期

    查询几天后的js代码,如果查询当天的日期 if($("input[name='startTime']").val()==""){ $("input[n ...

随机推荐

  1. netty中的传输

    终于在课设的闲时间把netty实战的四五章给解决了 这里来记录一下第四章里面所讲的IO 首先说到IO,我想,必须要先了解阻塞,非阻塞,同步和异步这四个词 看到一个讲的很易懂的例子:https://ww ...

  2. @vue/cli 构建得项目eslint配置

    如下:package.json // package.json { "name": "ecommerce-mall-front", "version& ...

  3. 深度解析使用CSS单位px、em、rem、vh、vw、vmin、vmax实现页面布局

     1.px:绝对单位,页面按精确像素展示 2.em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值. e ...

  4. 课程五(Sequence Models),第二 周(Natural Language Processing & Word Embeddings) —— 1.Programming assignments:Operations on word vectors - Debiasing

    Operations on word vectors Welcome to your first assignment of this week! Because word embeddings ar ...

  5. java提高(2)---正则表达式(1)常用符号

    正则表达式---常用符号 首先声明,我这里列表的是经常使用的一些符号,如果你想得到全部,那建议你通过API中,搜索Pattern类,会得到所有符号. 字符类 [abc] a.b 或 c(简单类) [^ ...

  6. Microsoft 机器学习产品体系对比和介绍

    Microsoft 提供多种多样的产品选项用于生成.部署和管理机器学习模型. 本文将比较这些产品,并帮助你选择所需的产品,以便最有效地开发机器学习解决方案. 机器学习产品 描述 作用 Azure云端服 ...

  7. Eclipse打包出错——提示GC overhead limit exceeded

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在Eclipse开发环境中打包发布apk安装包的时候,有时候会出现下面的错误: 原因 在打包的时候,Eclipse占用的内存会增大,当分配给Ecl ...

  8. MySQL+MGR 单主模式和多主模式的集群环境 - 部署手册 (Centos7.5)

    MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案.MGR是MySQL官方在5.7.17版本引进的一个数据库高可用与 ...

  9. 初识MongoBD

    一.安装 我使用的系统是Ubuntu16.04,不同版本系统参照官网安装步骤.安装官网4个步骤安装好MongoDB并启动. sudo apt-key adv --keyserver hkp://key ...

  10. JS_object添加变量属性_动态属性

    总结,给对象动态添加变量属性的方法如下: obj[变量]=变量值; 备注: obj.属性=属性值 ; obj={属性:属性值}; 这两种方式添加的属性都不能使用变量作为属性. 犯过的错误: var t ...