获取从星期日开始的周数

2024-01-10

我目前有这样的代码,我可以通过添加和减去按钮获取周数以及该周的开始/结束日:

Date.prototype.getWeekNumber = function() {
  var d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
  var dayNum = d.getUTCDay() || 7;
  d.setUTCDate(d.getUTCDate() + 4 - dayNum);
  var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
  return Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
};

var curr;
weekReset();

function display() {
  start.textContent = curr;
  end.textContent = endOfWeek(curr);
  week.textContent = ("Week " + curr.getWeekNumber());
}

function weekReset() {
  curr = startOfWeek(new Date());
  display();
}

function startOfWeek(date) {
  var start = new Date(date);
  start.setHours(0, 0, 0, 0);
  start.setDate(start.getDate() - start.getDay());
  return start;
}

function endOfWeek(date) {
  date = startOfWeek(date);
  date.setDate(date.getDate() + 6);
  return date;
}

function weekPlus(weeks) {
  curr.setDate(curr.getDate() + 7 * weeks);
  display();
}
<div id="start">start</div>
<div id="end">end</div>
<div id="week">week</div>
<button onclick="weekReset()">current</button>
<button onclick="weekPlus(1)">add</button>
<button onclick="weekPlus(-1)">substract</button>

问题是它显示当前周数为34;

开始于8 月 27 日星期日

结束于九月 2 日星期六

...这应该是周数35.

那么如何更改此函数以将星期日计为一周的第一天,将星期六计为一周的最后一天呢?

任何帮助表示赞赏。


你的问题在这里:

var dayNum = d.getUTCDay() || 7;
d.setUTCDate(d.getUTCDate() + 4 - dayNum);

该代码适用于 ISO 周,并将星期日的天数调整为 7,并将日期设置为星期四,其中一周为星期一到星期日。

您想要周日到周六的周,并且想要周日的那一周,所以使用:

var dayNum = d.getUTCDay();
d.setUTCDate(d.getUTCDate() - dayNum);

可以简化为:

d.setUTCDate(d.getUTCDate() - d.getUTCDay());
 Date.prototype.getWeekNumber = function () {
        var d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
        d.setUTCDate(d.getUTCDate() - d.getUTCDay());
        var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
        return Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
    };
    
var c = new Date(2017,7,26);
console.log(c.getWeekNumber() + ':' + c.toString());
var d = new Date(2017,7,27);
console.log(d.getWeekNumber() + ':' + d.toString());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取从星期日开始的周数 的相关文章

  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • Bootstrap按钮加载+Ajax

    我正在使用 Twitter Bootstrap 的按钮加载状态 http twitter github com bootstrap javascript html buttons http twitter github com bootst
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • 如何从日期中查找该月的最后一天?

    如何在 PHP 中获取该月的最后一天 Given a date 2009 11 23 我要2009 11 30 并给出 a date 2009 12 23 我要2009年12月31日 t返回给定日期所在月份的天数 请参阅的文档date ht

随机推荐

  • 使用XMPP或WebSocket,为什么用户之间的实时通信需要服务器?

    在底层 都是关于套接字通信的 如果有某种方法可以获取两个用户的IP 为什么不能直接在用户之间建立连接 而必须通过中间的服务器 我的2分钱 没有人强迫我们拥有基于服务器的实时通信模型 事实上 XMPP 有一个扩展名为 无服务器消息传递 htt
  • 使用 stat_summary 的标准误差线

    以下代码使用 Hmisc ddply 和 ggplot 生成带有标准误差条的条形图 means se lt ddply mtcars cyl function df smean sdl df qsec mult sqrt length df
  • adb 设备与 ADB wireless 离线

    由于某些原因 我的手机无法再使用电缆 我在互联网上看到可以通过 Wifi 将 adb 连接到 但是我尝试了一下 得到了这个 adb devices List of devices attached 192 168 1 2 5555 offl
  • Django + Google SSO openid

    我想要我的申请http app acquee com designer http app acquee com designer接受谷歌帐户作为登录 我找到了一堆 django 库 但大多数都是在我不使用的现有 Django 身份验证系统之
  • Django 开发服务器消息 - 它们是什么意思?

    如果我运行 Django 开发服务器并在浏览器中查看我的应用程序 我会收到如下消息 08 一月 2011 18 12 45 获取 HTTP 1 1 200 2714 08 一月 2011 18 12 45 获取 static style c
  • 嵌套列表:对列表中每个子元素的不同元素应用不同的函数

    我必须加载两种类型的数据集 使用不同的函数进行处理 然后连接在一起 我有每种类型的多个数据集 它们的名称存储在嵌套列表中 我想将两个不同的函数 或一个标识嵌套列表中每个数据集的函数 应用于嵌套列表中的每个子元素 我尝试了 lapply sa
  • Java中的动态ArrayList

    我对java有一个疑问 我们可以创建动态的吗 ArrayList or String 在 for 循环内 例如 在我的应用程序中 有类别字段 不是静态的 从服务器获取 我想创建ArrayList or String 基于类别大小的对象 如何
  • 允许任何语言的字母(如“ñ”)的正则表达式

    尝试让用户使用其他语言 例如西班牙语或法语 中的特殊字符 我原来有这个 A Za z0 9 i 然后将其更改为 p L p N i 但仍然不起作用 应允许使用诸如 之类的字母 谢谢 修订 我发现在开头加上 UTF8 有助于解决问题 所以我使
  • Nodejs 可以与 Cakephp 集成吗?

    我想实时监控用户输入的数据comments桌子 我有一个 Apache 服务器正在运行 并且假设它在端口 1337 上有一个节点服务器 每次有人保存新数据时 我该怎么做 例如返回表中的总行数comment并显示在view 也许方法是使 th
  • 自动展开PropertyGrid中的一些属性

    我想通过使用该类的属性来自动展开加载了我的 SettingsStructure 类的实例的 PropertyGrid 中的一些节点 另外 如果用户在 PropertyGrid 上再次加载该实例 我试图让实例 记住 每个属性是否已展开 我做了
  • 在SQL中显示表的结构

    有人可以向我更好地解释一下吗 如何显示表的结构 我运行select from table 当然它会显示表中的所有内容 但是 我被要求显示表的结构 这是什么意思 命令是什么 这是我的下表 SQL gt select from dept DEP
  • 我应该在 Python 中使用“公共”属性还是“公共”属性?

    在 Python 中 我有以下示例类 class Foo self attr 0 property def attr self return self attr attr setter def attr self value self at
  • 从 data.table 聚合返回多列[重复]

    这个问题在这里已经有答案了 我想用data table作为替代aggregate or ddply 因为这两种方法没有像希望的那样有效地扩展到大型对象 不幸的是 我还没有弄清楚如何让向量返回聚合函数在结果中生成多列data table 例如
  • Bootstrap 3:嵌套选项卡

    我试图将一个选项卡放在一个选项卡内 但是每当我单击内部嵌套选项卡时 整个内部嵌套选项卡行就会消失 这是 jsfiddle 中的示例 http jsfiddle net jNWMY 1 http jsfiddle net jNWMY 1 尝试
  • 创建原始数据包来欺骗 UDP 数据包

    我正在寻找使用 Java 欺骗 UDP 数据包 有没有好的 Java 库可以让您创建自己的原始套接字 我会使用一个 Java API 来包装libpcap http www tcpdump org libpcap 有一个 注入 功能 允许您
  • 如何不在nginx访问日志中记录get请求参数?

    我需要启用访问日志 但出于合规性原因 无法在访问日志中记录敏感 GET 请求参数的数据 虽然我知道 我可以解析日志 事后 并清理它们 但这不是一个可接受的解决方案 因为出于合规性原因 日志不能被篡改 如何防止 sensitive data
  • 正则表达式匹配除某些之外的所有集合

    我确定以前曾问过这个问题 但我似乎找不到它 或知道要搜索的正确措辞 基本上我想要一个匹配除连字符之外的所有非字母数字的正则表达式 所以基本上匹配 W 除了排除 我不知道如何从预制集中排除特定的 W是一个简写 w So w 一些背景知识 定义
  • 识别批处理文件的运行实例

    这些对我不起作用 有什么帮助可以明确纠正以下四个示例吗 即使我打开了三个 CMD exe EXAMPLE01 也只是回显 继续 示例 01 echo off wmic process where name cmd exe find cmd
  • 依赖于自身的 Spark 窗口函数

    假设我在 DataFrame 中有一列已排序的时间戳 我想编写一个函数 向该 DataFrame 添加一列 根据以下规则将时间戳切割成连续的时间片 从第一行开始并继续迭代到最后 对于每一行 如果您在当前组中走了 n 行 或者您在当前组中走了
  • 获取从星期日开始的周数

    我目前有这样的代码 我可以通过添加和减去按钮获取周数以及该周的开始 结束日 Date prototype getWeekNumber function var d new Date Date UTC this getFullYear thi