如何将日历的开始日期布局从星期日更改为星期一?

小猪

嗨,我正在尝试从作者 xMark 的日历示例代码中学习 JavaScript。但他的例子使用星期日作为一周的第一天。我希望它显示星期一为一周的第一天。到目前为止,我只设法更改了标题标签,但没有更改日期的正确位置。https://codepen.io/xmark/pen/WQaXdv

所以我一直试图了解在他的代码中我可以让日期向左移动一步。但我无法弄清楚这种转变应该在代码中的哪个位置发生。

我最受困Calendar.prototype.showMonth = function(y, m) {...}的部分是我认为需要更改的部分。在这个函数中我不明白作者为什么var k = lastDay_of_LastMonth - firstDay_of_Month+1;在最后一个变量上加了+1?

var k = ...我彻底迷失之后。每当我试图改变事情时,整个日历就会破裂。

@唐纳德·特朗普

var d7 = new Date(2018, 6, 1);
d7
"Sun Jul 01 2018" 00:00:00 GMT+0200 (Central European Summer Time)
 
var firstDay_of_Month = new Date(2018, 6, 1).getDay();
firstDay_of_Month
0 // July 1st is on a Sunday.
 
//_________________________________________________________________
 
var d8 = new Date(2018, 7, 1);
d8
"Wed Aug 01 2018" 00:00:00 GMT+0200 (Central European Summer Time)
 
var firstDay_of_Month = new Date(2018, 7, 1).getDay();
firstDay_of_Month
3 // August 1st is on a Wednesday.
 
//_________________________________________________________________
 
var dNaguib = new Date(2018, 6, 7);
dNaguib
"Sat Jul 07 2018" 00:00:00 GMT+0200 (Central European Summer Time)
 
var dNaguib = new Date(2018, 6, 7).getDay();
dNaguib
6 // July 7th is on a Saturday.
 
 
// Why then does this dynamic code looking for the 7th each month
// make everything in the calendar work?
var firstDay_of_Month = new Date(y, m, 7).getDay(); // Naguib


// While the original code looking for the 1st each month make
// some months break the calendar?
var firstDay_of_Month = new Date(y, m, 1).getDay(); // Original

纳吉布·伊哈布

我浏览了您附带的代码笔,并浏览了代码中提到星期日的每个部分,并将其修改为:https : //codepen.io/naguibihab/pen/aKMYpB

以下是我所做的更改:https : //github.com/naguibihab/js-goodies/commit/aa14d87eea68860650aee3383b458a0b00fb64a9

我会解释为什么我做每一个改变,这让我回到了我的大学时代,我必须解释我的代码,所以请耐心等待:

1:

  this.DaysOfWeek = [
    'Mon',
    'Tue',
    'Wed',
    'Thu',
    'Fri',
    'Sat',
    'Sun'
  ];

那是日历中标题行的标题,那只是文本,那里没有逻辑变化

2:firstDayOfMonth = 6你这个月的第一天现在是星期一而不是星期日,你也可以写, firstDayOfMonth = new Date(y, m, 7).getDay()得到相同的结果,但我认为第一个让读者更清楚,因为6无论如何我们都会得到

3:if ( dow == 1 ) {在星期一而不是星期日开始新的一行

4:if ( dow == 0 ) {在周日而不是周六关闭行

5:for(dow; dow < 7; dow++) {下个月的“非当前”数字可能会上升到星期日,因此我们需要在那里进行额外的迭代(可能有更好的方法可以在不增加迭代的情况下做到这一点,但我现在懒得弄清楚)

它主要是一种“尝试改变某些东西,然后看看会发生什么”的方法来达到目标​​,所以我所做的是检查每个我怀疑星期天影响代码的区域,并尝试对其进行更改以查看会发生什么。

如果这还不够合理,请在评论中告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将lubridate功能更改为在星期一而不是星期日开始

如何从星期日而不是星期一开始在ng bootstrap Datepicker中启动日历周?

如何在R中获取当前周开始日期(星期一)和结束日期(星期日)

在标准 sql 中获取从星期一开始的星期日期

getdate [“ weekday”]如何从星期一开始而不是星期日开始?

如何使用 moment.php 将日期格式从“星期一”更改为“星期一”?

如何将输出从1更改为星期一?

如何获取最近4周的星期一和星期日的日期在php中?

如何将随机日期更改为同一周的星期一

使用python,我如何从星期三而不是星期日或星期一开始我的几周?

选择当前星期,从星期一开始而不是星期日

如何获取两个日期之间的所有星期日/星期一/星期二?

将一周的开始更改为星期一

一周的sql代码应从星期日的星期一结束开始

如何将日期截断到星期初(星期日)?

Tableau Week()函数在星期一而不是星期日开始

使 date_trunc() 从星期日而不是星期一开始

如何通过自动选择正确的日期范围(星期一至星期日)来获取Google表格的小时数

根据给定的日期范围获取星期一和星期日

MySQL日期介于上个星期一和下个星期日之间

如何选择已过月份的第一个星期一之前的星期日

如何从日期开始到下一个星期日结束的一周

在Julia中:“星期几”默认设置为“星期一” = 1,如何设置“星期日” = 1

如何在bliblidotcom Vue-rangedate-picker中将星期一设置为一周的开始而不是星期日

在Unix上获取星期一和星期日等一周的任何日期作为参数

日历从星期一开始

排序从星期一星期星期日在Java中

SQL设置从星期一到星期日每个月的星期数

使用Java日历获取一年中的星期几,将星期日作为星期几