并非每个月都从星期一开始
Not every month starts with monday
本文关键字:一开始 更新时间:2023-09-26
我正在制作这个简单的日历:http://jsfiddle.net/ro0wnpus/但并非每个月都以星期一为第一个日期开始。我的问题是如何找出每月的第一个日期是什么?
这是绘制一个月中的天数的函数:
function drawDays() {
var position = document.getElementById("daysContainer");
var element = "<div id='cell'>";
var numDays = getNumberOfDays(month);
for (var i = 0; i < numDays; i++) {
position.innerHTML += (element + (i+1) + "</div>");
}
}
var dt = new Date(); // create a date, default = today
dt.setDate(1); // change date so it's the 1st of the month
alert(dt.getDay()); // get day-of-week, 0 = sunday -> 6 = saturday.
试试这样的事情...
var year = "2014";
var month = "12";
var day = new Date(year + "-" + month + "-01").getDay()
由于您从 1 开始计数,而星期一是一周的第一天,因此您还必须这样做:
day = (day===0) ? 7 : day
编辑了你的 JSFiddle: http://jsfiddle.net/ro0wnpus/
以下是我更改的内容。
使用 getDay()
查找一周中的哪一天是第一天,并添加了一个新的 var 计数,该计数将跟踪循环中的日期。 getDay()
给了我们一个介于 0 和 6 之间的整数,对应于星期日到星期一。
var firstDay = new Date(year, month, 1).getDay();
var count = 1;
将第一天添加到该月的总天数中,因为我们现在需要循环访问更多日期
var numDays = getNumberOfDays(month)+firstDay;
更改了您的循环以检查我们何时到达第一天,如果我们还没有到达,请将该位置留空
for (var i = 1; i < numDays; i++) {
if(i >= firstDay){
position.innerHTML += (element + (count) + "</div>");
count++;
}else{
position.innerHTML += (element + "" + "</div>");
}
}
相关文章:
- javascript regexp,用于验证一开始没有http的url
- 当我尝试恢复JWPlayer视频时,它从一开始就开始了
- Regex:从一开始就对捕获组进行了负面展望
- 背景视频是由ScrollMagic一开始的最后一个场景触发的
- 谷歌地图在一开始正确加载后会变成灰色
- OWL 轮播图片一开始尺寸不合适
- 如何使正则表达式从一开始就匹配模式
- keylistener没有'一开始不起作用
- 我的PDF文件一开始没有被选中,只有在ie浏览器中才被选中
- Angular JS页面一开始无法正常加载
- 如何让我的循环开始从一开始错误检测后
- 为什么不需要一开始就进行淘汰赛验证
- Backbone.js + GUI:我是否必须用视图和模型构建GUI,或者我是否从一开始就用html加载它
- 《Redux-saga》一开始并不能奏效
- 工具提示器一开始不能正常工作
- 如何一开始不启用toggle类
- 组织结构图从一开始就崩溃了
- 有没有更好的方法来创建一个四分之一的列表,从给定的四分之一开始倒数
- 获得一个引导按钮下拉,从一开始就保持打开(在页面加载时)
- 单击以旋转一开始方向错误