用js计算从开始到结束时间之内的按周值选定
前台选择周几(周一周日),比如选择<td>周一</td>,<td>周三</td>,<td>周五</td>我用js attr 给td添加一个selected和value(1-7分别对应周一到周日),然以后取seleted了的value,如1,3,5当成一个数组,然后还有开始日期start和结束日期end。需求就是需要计算开始日期和结束日期之间的所有选中的周一周三周五的日期。如果所示:

以下是js代码:最终值需要调用addWeeks(startTime,endTime,weeks)只需要填写开始日期、结束日期和选择的值数组就行。
function addDate($now,$addCount){
$now+=$addCount*1000*60*60*24;
var d=new Date($now);
return d;
}
function addTd($addCount){
var td="";
for(var i=0;i<$addCount;i++){
td+="<td></td>";
}
return td;
}
function addDateWithTd($dt){
var td="<td>";
var dt=new Date($dt);
td+=(dt.getMonth()+1)+"."+dt.getDate();
//td+=dt.toLocaleDateString();
td+="</td>";
return td;
}
function addWeeks(startTime,endTime,weeks){
var start=new Date(startTime);
var b;
var c=new Date();
alert(c.toLocaleDateString());
alert(start.toLocaleDateString());
var diff=Math.floor((c.getTime()-start.getTime())/(1000*60*60*24));
alert(diff);
if(diff<0){
b=start;
}else{
b=addDate(c.getTime(),1);
}
var e=new Date(endTime);
var $totalDay=(e-b)/1000/60/60/24+1
//var weeks=[1,3,0];
var $td="<td></td>";
var $btr="<tr>";
var $etr="</tr>";
var $all="";
var num=b.getDay();
if(b.getDay()==0){
num=7;
}
$all+=$btr;
$all+=addTd(num-1);
for(var i=0;i<$totalDay;i++){
var flag=false;
if(b.getDay()==1){
$all+=$btr;
}
for(var j=0;j<weeks.length;j++){
if(b.getDay()==weeks[j]){
$all+=addDateWithTd(b.getTime());
flag=true;
break;
}
}
if(!flag){
$all+=$td;
}
if(b.getDay()==0){
$all+=$etr;
}
b=addDate(b.getTime(),1);
}
if(e.getDay()==0){
num=7;
}else{
num=e.getDay();
$all+=addTd(7-num);
}
$all+=$etr;
return $all;
}
用js计算从开始到结束时间之内的按周值选定的更多相关文章
- JS计算距当前时间的时间差
/** * JS获取距当前时间差 * * @param int time JS毫秒时间戳 * */ function get_time_diff(time) { var diff = ''; var ...
- js计算两个时间之间的间隔
计算时间间隔的方法有很多,这里只是一种方式,可以方法里直接传入两个时间,也可以传入两个字符串格式的时间,在方法里解析一下就ok,这个例子里不传入参数,直接在方法里随便写一个时间来演示一下 fun() ...
- js计算发表的时间...分钟/小时以前/以后
网上找的都好复杂,这本来就是个粗略显示通俗的时间,绕来绕去都晕了 function timeAgo(o){ var n=new Date().getTime(); var f=n-o; var bs= ...
- js计算两个时间相差天数
//两个时间相差天数 兼容firefox chrome function datedifference(sDate1, sDate2) { //sDate1和sDate2是2006-12 ...
- js计算两个时间相差
.filter('useTime', function() { return function(val) { // if (/.(.mp4)$/gi.test(url)) { // return JS ...
- js间隔一段时间打印数据库中的值
https://blog.csdn.net/qq_33599109/article/details/78417474
- JS判断2个时间是否在同一周
function isSameWeek(old, now) { var oneDayTime = 1000 * 60 * 60 * 24; var old_count = parseInt(+old ...
- js 计算当年还剩多少时间的倒数计时 javascript 原理解析【复制到编辑器查看推荐】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js 计算过去和未来的时间距离现在多少天?
计算传入的任意一时间.计算出这个时间距离现在还有多少天!或者计算过去的时间距离现在已经过去了多少天! 返回值有两种! 1.负值 代表过去了多少天 2.正值 代表距离设定的时间还有多少天 说明:距离设定 ...
随机推荐
- strncpy,strcpy
strncpy不会为des自动添加“\0” strcpy遇空结束,自动添加结束符 结论: 1.使用strcpy时一定不能用于无结束符的字符串,因为strcpy依赖\0判断源字符串的结束 2.使用str ...
- 虚拟机和windows主机中的文件共享
22:54 2015/12/22 虚拟机和windows主机中的文件共享:特别推荐:我的一个老师特别推荐的方法:在windows安装SSH Secure File Transfer Client,直接 ...
- 【BZOJ1087】 [SCOI2005]互不侵犯King 状压DP
经典状压DP. f[i][j][k]=sum(f[i-1][j-cnt[k]][k]); cnt[i]放置情况为i时的国王数量 前I行放置情况为k时国王数量为J #include <iostre ...
- ZeroMQ实例-使用ZMQ(ZeroMQ)进行局域网内网络通信
本文内容摘要:1)安装zeromq.2)实例说明使用zmq进行网络间的消息发送和接收 首先在机器中安装zmq库 步骤如下: 1)下载zeromq的源代码,ZeroMQ的官方网址:http://zero ...
- HTML5新的标签和属性
<article>标签定义外部的内容.比如来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文本.亦或是来自其他外部源内容. HTML5:<arti ...
- win10启动无法进入桌面
情况: windows启动显示欢迎界面 无法进入桌面(可以win+E进入资源管理器,可以ctl+alt+delete进入任务管理器) 重启依然无法进入 解决: 重启 按f8 进入安全模式 再次重启OK ...
- Learn ZYNQ (9)
创建zybo cluster的spark集群(计算层面): 1.每个节点都是同样的filesystem,mac地址冲突,故: vi ./etc/profile export PATH=/usr/loc ...
- java并发容器类
本文主要介绍java并发容器相关实现类,collections节点下接口方法介绍. Queue Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是Blocking ...
- python学习道路(day7note)(subprocess模块,面向对象)
1.subprocess模块 因为方法较多我就写在code里面了,后面有注释 #!/usr/bin/env python #_*_coding:utf-8_*_ #linux 上调用python脚 ...
- 配置Tomcat web保存文件到项目路径之外
<Host name="localhost" appBase="webapps" unpackWARs="true&qu ...