Javascript 如何更改日历';从星期天到星期一的开始日期?
嗨,我正试图从作者xMark编写的这个日历示例代码中学习JavaScript。但是他的例子使用星期天作为一周的第一天。我想让它显示星期一是一周的第一天。到目前为止,我只设法更改了标题标签,但没有更改日期的正确位置。 所以我一直在试图理解在他的代码中,我可以让日期向左移动一步。但我不知道在代码中应该在哪里发生这种变化 我最感困惑的部分是Javascript 如何更改日历';从星期天到星期一的开始日期?,javascript,date,calendar,Javascript,Date,Calendar,嗨,我正试图从作者xMark编写的这个日历示例代码中学习JavaScript。但是他的例子使用星期天作为一周的第一天。我想让它显示星期一是一周的第一天。到目前为止,我只设法更改了标题标签,但没有更改日期的正确位置。 所以我一直在试图理解在他的代码中,我可以让日期向左移动一步。但我不知道在代码中应该在哪里发生这种变化 我最感困惑的部分是Calendar.prototype.showmount=function(y,m){…},我认为这是需要更改的部分。在这个函数中,我不明白为什么作者var k=
Calendar.prototype.showmount=function(y,m){…}
,我认为这是需要更改的部分。在这个函数中,我不明白为什么作者var k=lastDay\u of_lastmount-firstDay\u of_Month+1代码>将+1添加到最后一个变量
在var k=…
之后,我完全迷路了。每当我试图改变事情时,整个日历都会崩溃
@纳吉布
var d7=新日期(2018年6月1日);
d7
“2018年7月1日太阳”00:00:00 GMT+0200(中欧夏季时间)
var firstDay of_Month=新日期(2018年6月1日)。getDay();
月初一
七月一日是星期天。
//_________________________________________________________________
var d8=新日期(2018年7月1日);
d8
“2018年8月1日星期三”00:00:00 GMT+0200(中欧夏季时间)
var firstDay of_Month=新日期(2018年7月1日)。getDay();
月初一
八月一日是星期三。
//_________________________________________________________________
var dNaguib=新日期(2018年6月7日);
德纳吉布
“2018年7月7日星期六”00:00:00 GMT+0200(中欧夏季时间)
var dNaguib=新日期(2018年6月7日).getDay();
德纳吉布
7月7日是星期六。
//那么为什么这个动态代码每个月都在寻找第7个呢
//让日历上的一切都正常吗?
var firstDay_of_Month=新日期(y,m,7)。getDay();//纳吉布
//而最初的代码则是每月查找1次
//有些月份打破了日历?
var firstDay_of_Month=新日期(y,m,1)。getDay();//原件
从Nikhil Talreja退房。它应该给你一个好主意,如何让日历以周一为开始日期。A
本质上,他使用了一些for循环和标签,例如:
cal_days_labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat','Sun'];
及
for(var j=1;j从Nikhil Talreja查看。它会让您了解如何让日历以周一为开始日期。a
本质上,他使用了一些for循环和标签,例如:
cal_days_labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat','Sun'];
及
for(var j=1;j我查看了您附加的代码笔,查看了代码中提到星期日的每个部分,并将其修改为:
以下是我所做的更改:
我将解释为什么我做了每一次更改,这让我回到了我的大学时代,我必须解释我的代码,请耐心听我说:
1:
这是日历中标题行的标题,只是文本,没有逻辑变化
2:firstDayOfMonth=6
现在,一个月的第一天是星期一,而不是星期天,您也可以编写,firstDayOfMonth=新日期(y,m,7)。getDay()
,以获得相同的结果,但我认为第一天会让读者更清楚一些,因为无论如何我们都会得到6
3:如果(道琼斯指数==1){
在周一而不是周日开始新的一行
4:如果(道琼斯指数==0){
在周日而不是周六关闭行
5:对于(道琼斯指数;道琼斯指数<7;道琼斯指数++){
下个月的“非最新”数据可能会持续到周日,因此我们需要在那里进行额外的迭代(可能有更好的方法不增加迭代次数,但我现在懒得弄清楚)
这主要是一种“尝试改变一些事情,看看会发生什么”的方法,所以我所做的是检查每个我怀疑周日会影响代码的区域,并尝试改变它,看看会发生什么
如果没有足够的意义,请在评论中告诉我。我查看了您所附的代码笔,查看了代码中提到星期日的每个部分,并将其修改为:
以下是我所做的更改:
我将解释为什么我做了每一次更改,这让我回到了我的大学时代,我必须解释我的代码,请耐心听我说:
1:
这是日历中标题行的标题,只是文本,没有逻辑变化
2:firstDayOfMonth=6
现在,一个月的第一天是星期一,而不是星期天,您也可以编写,firstDayOfMonth=新日期(y,m,7)。getDay()
,以获得相同的结果,但我认为第一天会让读者更清楚一些,因为无论如何我们都会得到6
3:如果(道琼斯指数==1){
在周一而不是周日开始新的一行
4:如果(道琼斯指数==0){
在周日而不是周六关闭行
5:对于(道琼斯指数;道琼斯指数<7;道琼斯指数++){
下个月的“非最新”数据可能会持续到周日,因此我们需要在那里进行额外的迭代(可能有更好的方法不增加迭代次数,但我现在懒得弄清楚)
这主要是一种“尝试改变一些事情,看看会发生什么”的方法,所以我所做的是检查每个我怀疑周日会影响代码的区域,并尝试改变它,看看会发生什么
如果没有足够的意义,请在评论中告诉我。谢谢Naguib因为您建议的代码,我的整个日历现在似乎都没有bug了。var firstDay\u of_Month=新日期(y,m,7)。getDay()
但我不明白为什么它能工作,因为它的静态版本只在7月份工作,但在其他月份有问题,因为1st不是在周日firstDayOfMonth=6
。我做了一个测试。var dNaguib=newdate(2018,6,7);
dNaguibdNaguib“2018年7月7日星期六”
.dNaguib.getDay();d
this.DaysOfWeek = [
'Mon',
'Tue',
'Wed',
'Thu',
'Fri',
'Sat',
'Sun'
];