下面的代码算是个初级的排期日历,更多的东西(比如点击事件,循环赋值,翻页保留原始数据等)就根据自己的需求自己往里面添加好了!
个人感觉日历的JS代码已经比较简易了,曾经见过一个哥们的代码只有10几行实现了一个日历的效果,没办法... 谁让咱需要翻页呢!只能这么弄了!
对于闰月等,完全没有必要自己去判断!扔给浏览器JS自己去做最好了~ 毕竟咱们再怎么想的周全也没有必要再去做轮子了!
对于JS又回到了痛苦的状态了~~ 本来想写的更好的... 不过开发就是要求效率第一的,以后有想法了在对这个进行更新了!
<html>
<style>
body{ padding:0px; margin:0px;}
#da{border:1px solid #999; border-right:none; width:700px; margin-left:100px; margin-top:50px; overflow:hidden; border-top:none; border-bottom:none;}
ul,li{ padding:0px; overflow:0px; margin:0px; list-style-type:none;}
.xingqi{ width:700px; overflow:hidden; }
.xingqi li{border-bottom:1px solid #999;float:left;width:98px; overflow:hidden; border-right:1px solid #999; border-top:1px solid #999; text-align:center;}
#da2 .day{width:98px;height:50px;float:left; border-bottom:1px solid #999; border-right:1px solid #999;}
#da2 .dayin{width:100%;height:100%; text-align:center; }
#button-div{display:none;}
.cls{clear:both;}
</style>
<body>
<div id="button-div"><input type="button" id="button" value="点我"></div>
<div id="da">
<div class="xingqi">
<ul>
<li>星期日</li>
<li>星期一</li>
<li>星期二</li>
<li>星期三</li>
<li>星期四</li>
<li>星期五</li>
<li>星期六</li>
</ul>
</div>
<div class="cls"></div>
<div id="da2"></div>
</div>
<input type="button" onClick="backmonth()" value="上月" style="margin-left:100px;margin-top:20px;">
<input type="button" onClick="nextmonth()" value="下月">
<input type="button" onClick="alert(hiddenday.getFullYear()+'年'+(parseInt(hiddenday.getMonth())+1)+'月')" value="hiddenday">
</body>
<script>
var hiddenday = new Date(); //隐藏月份
var d,x,temp="";
function $(id){return document.getElementById(id);}
window.onload =function(){
var d = new Date();
window.hiddenday = d; //变更日期需存入隐藏变量中,在上下月调整中使用
initday(d);
}
function initday(day){
var d1 = new Date(day.getFullYear(),day.getMonth(),1);
var d2 = new Date(day.getFullYear(),day.getMonth()+1,0);
var firstday = new Date(day.getFullYear(),day.getMonth(),1).getDay();
var year = d2.getFullYear(); //当前年
var month = parseInt(d2.getMonth())+1; //当前月份
month = month<10?'0'+month:month;
var countDay = 1; //日期从1计数
var dayofmonth = d2.getDate(); //整月有多少天
temp="";
for(i=0;i<firstday;i++)temp+="<div class=\"day\"><div class=\"dayin\"></div></div>";
var arr = new Array();
for(;countDay<=dayofmonth;countDay++)arr.push(year+"-"+month+"-"+(countDay<10?'0'+countDay:countDay)); //将日期载入arr
for(a in arr)temp+="<div class=\"day\" id=\""+arr[a]+"\"><div class=\"dayin\">"+arr[a]+"</div></div>"; //拼接显示
$("da2").innerHTML = temp; //将数据放入div中
temp=null; //[color=red]这个是比较重要的地方,释放内存[/color]
}
//下个月
function nextmonth(){
hiddenday = new Date(hiddenday.getFullYear(),hiddenday.getMonth()+1,1);
initday(hiddenday);
}
//上个月
function backmonth(){
hiddenday = new Date(hiddenday.getFullYear(),hiddenday.getMonth()-1,1);
initday(hiddenday);
}
</script>
</html>
代码是精简的,也就是第一版的,关键部分的代码都已经注释,后面图片里面保存的就是排期系统中需要对翻页后数据进行保存的结果,还有点击修改时间!当然这里只需要对小时进行操作就没有必要更多的输入框了!上面图片中下方的数组是针对翻页等进行数据保存以及选取时间范围和是否选中的结果进行存储!最后再将数组插入form表单中隐藏提交就可以了!
以上算是V2的设计,后续东西再到有需求的时候再进行更新了!基本的原型和JS存储原理都已经描述加图片介绍的很详细了!
- 大小: 13.9 KB
分享到:
相关推荐
在JavaScript编程中,"日历排期占位"是一个常见的需求,主要用于创建和管理日历事件,例如...以上是“js日历排期占位”涉及的一些核心概念和技术,通过理解和应用这些知识点,你可以创建一个功能丰富的日历排期系统。
"日历"是最基础的关键词,表明这个项目的核心是一个功能完备的日历系统。 【压缩包子文件的文件名称列表】:calenar 虽然没有具体的文件内容可供详细分析,但我们可以假设这个"calenar"文件包含了实现这个横向日历...
"排期时间组件"和"日历组件"是标签,进一步明确了这个软件组件的主要特性。排期时间组件强调的是时间的规划和管理,而日历组件则更侧重于日期和时间的显示以及与日期相关的活动记录。这两个概念在实际应用中常常结合...
在IT行业中,尤其是在Web开发领域,医生排班日历表是一种常见的用户界面组件,用于帮助医疗机构管理和展示医生的工作时间表。这种控件通常由前端开发者实现,为用户提供直观、易用的日程安排功能。以下是对这个主题...
在Vue.js框架中,FullCalendar是一个非常流行的库,用于创建功能丰富的日历组件,它可以用于显示日程安排、事件管理等。本项目示例将详细阐述如何在Vue中集成并使用FullCalendar,以实现一个完整的日程安排系统。 ...
8. **提醒功能**:结合Outlook或其他日历应用,可以将活动排期表中的事件同步到个人日历,设置提醒,确保不会错过任何重要活动。 9. **数据导入导出**:如果企业有其他项目管理软件,可以通过Excel的数据导入导出...
3. **时间轴**:使用日历视图或者甘特图来显示任务的起止日期,直观展示任务的进度和相互关系。这有助于管理者掌握整个项目的动态,及时调整计划。 4. **资源管理**:记录每项任务所需的资源,如人力、设备、资金等...
(5)简便的排期预订功能:排期表以日历表模式设定每天投放明细,也可批量分配,达到所见即所得的投放排期效果,将复杂繁琐的广告排期工作变得简单快捷。 (6)生动直观的各类报表:对于广告物料的使用情况和相关...
日历视图则以日期为线索,清晰展示任务的排期,便于规划和调整。 创建和分配任务是系统的核心操作。用户可以通过“工作任务”模板新建任务,并指定任务的接收者。分配任务时,系统提供了一个明细表供用户选择接收...
《聚划算竞拍系统操作详解》 聚划算竞拍系统是阿里巴巴旗下的一种创新营销模式,旨在帮助商家提高产品曝光度,吸引消费者关注,促进商品销售。这个系统通过竞拍的方式,让商家有机会获得聚划算平台的优质资源位,...
这部分代码可能实现了展示电影上映日期的日历视图,用户可以查看近期或未来的电影排期。可能涉及到数据同步与更新、日期处理和UI设计。 5. **电影推荐**: 电影推荐系统一般基于用户的历史行为、评分、热门度等...
8. **主题系统**:引入了新的主题系统,可以更方便地调整日历的外观。 9. **API扩展**:提供了更多的API方法和事件,以实现更复杂的日历交互逻辑。 在使用FullCalendar时,开发者可以根据需求选择合适的版本。如果...
4. **快速填充功能**:可以快速填充一系列连续的日期,这对于创建日程表、排期表等非常实用。 5. **日期计算**:提供简单的日期运算功能,如加减天数、月份或年份,方便进行日期间的计算。 6. **兼容性**:...
Sunbird本身是一款开源的桌面日历应用,由Mozilla基金会开发,支持多种操作系统,包括Windows、macOS和Linux。它提供了日视图、周视图、月视图和年视图,用户可以方便地查看和编辑事件。此外,Sunbird还有强大的提醒...
去做自动适应教学作息时间提升代码质量使用方式MIUI系统日历中订阅课程表服务并打开。 设置中选择学校:内蒙古农业大学-统一身份认证服务。 课表页点击教务系统导入。 登录后打开教务系统点击个人课表并点击一键导入...
“电影日历”可能涉及电影排期查询、购票接口对接,我们可以从中学习到如何获取和展示实时电影数据;“剪刀石头布”这类小游戏则展示了小程序如何实现简单游戏逻辑和用户交互;“HIapp”可能是一个社交性质的小程序...
系统会自动根据这些信息优化团队的排期,确保资源的合理分配。 3. **团队协作** 团队协作是TeamSchedule的核心功能之一。团队成员可以在同一平台上实时查看和更新任务进度,通过评论和@功能进行交流,减少了邮件...
2. **电影日历**:这可能是一款提供电影上映信息和排期的小程序。开发者需要熟悉如何通过API获取电影数据,如豆瓣电影API,同时理解如何设计用户友好的界面展示电影信息,利用日期选择器和列表组件。 3. **东航订...
内置“大片上映排期”“冷门纪念日”“我的记事”等15个标签选项,用户可以选择定制个性化日历。支持“月”“周”两种周期,点击节点会自动链接到百度的相关网页。365热点日历最特别的一点在于“搜索”选项,通过...