js获取指定日期周数以及星期几的小例子


Posted in Javascript onJune 27, 2014

JS获取日期时遇到如下需求,根据某年某周获取一周的日期。如开始日期规定为星期四到下一周的星期五为一周。

代码如下:

function getNowFormatDate(theDate) 
{ 
var day = theDate; 
var Year = 0; 
var Month = 0; 
var Day = 0; 
var CurrentDate = ""; 
// 初始化时间 
Year= day.getFullYear();// ie火狐下都可以 
Month= day.getMonth()+1; 
Day = day.getDate(); 
CurrentDate += Year + "-"; 
if (Month >= 10 ) 
{ 
CurrentDate += Month + "-"; 
} 
else 
{ 
CurrentDate += "0" + Month + "-"; 
} 
if (Day >= 10 ) 
{ 
CurrentDate += Day ; 
} 
else 
{ 
CurrentDate += "0" + Day ; 
} 
return CurrentDate; 
} 

function isInOneYear(_year,_week){ 
if(_year == null || _year == '' || _week == null || _week == ''){ 
return true; 
} 
var theYear = getXDate(_year,_week,4).getFullYear(); 
if(theYear != _year){ 
return false; 
} 
return true; 
} 

// 获取日期范围显示 
function getDateRange(_year,_week){ 
var beginDate; 
var endDate; 
if(_year == null || _year == '' || _week == null || _week == ''){ 
return ""; 
} 
beginDate = getXDate(_year,_week,4); 
endDate = getXDate(_year,(_week - 0 + 1),5); 
return getNowFormatDate(beginDate) + " 至 "+ getNowFormatDate(endDate); 
} 

// 这个方法将取得某年(year)第几周(weeks)的星期几(weekDay)的日期 
function getXDate(year,weeks,weekDay){ 
// 用指定的年构造一个日期对象,并将日期设置成这个年的1月1日 
// 因为计算机中的月份是从0开始的,所以有如下的构造方法 
var date = new Date(year,"0","1"); 

// 取得这个日期对象 date 的长整形时间 time 
var time = date.getTime(); 

// 将这个长整形时间加上第N周的时间偏移 
// 因为第一周就是当前周,所以有:weeks-1,以此类推 
// 7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒) 
time+=(weeks-1)*7*24*3600000; 

// 为日期对象 date 重新设置成时间 time 
date.setTime(time); 
return getNextDate(date,weekDay); 
} 
// 这个方法将取得 某日期(nowDate) 所在周的星期几(weekDay)的日期 
function getNextDate(nowDate,weekDay){ 
// 0是星期日,1是星期一,... 
weekDay%=7; 
var day = nowDate.getDay(); 
var time = nowDate.getTime(); 
var sub = weekDay-day; 
if(sub <= 0){ 
sub += 7; 
} 
time+=sub*24*3600000; 
nowDate.setTime(time); 
return nowDate; 
}

如获取2016年第一周日期,从周四开始算。则第一周的日期范围为2016-01-07 至 2016-01-15

在提供一段调用的参考代码:

//日期处理 
function dateRange(){ 
var _year = $("#_year").val(); 
var _week = $("#_week").val(); 
if(isInOneYear(_year,_week)){ 
var showDate = getDateRange(_year,_week); 
$("#_dateRange_import").html(showDate); 
} else{ 
alert(_year+"年无"+_week+"周,请重新选择"); 
$("#_week").val(""); 
} 
}
Javascript 相关文章推荐
input 输入框内的输入事件详细分析
Mar 17 Javascript
JS弹出层单纯的绝对定位居中示例代码
Feb 18 Javascript
用js闭包的方法实现多点标注冒泡示例
May 29 Javascript
学习javascript面向对象 掌握创建对象的9种方式
Jan 04 Javascript
javascript创建对象、对象继承的实用方式详解
Mar 08 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
react中实现搜索结果中关键词高亮显示
Jul 31 Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 Javascript
解决layui 表单元素radio不显示渲染的问题
Sep 04 Javascript
如何通过JS实现转码与解码
Feb 21 Javascript
js实现飞机大战游戏
Aug 26 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 #Javascript
jQuery+ajax实现鼠标单击修改内容的方法
Jun 27 #Javascript
node.js实现逐行读取文件内容的代码
Jun 27 #Javascript
javascript实现的HashMap类代码
Jun 27 #Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 #Javascript
Javascript字符串对象的常用方法简明版
Jun 26 #Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
Jun 26 #Javascript
You might like
用户的详细注册和判断
2006/10/09 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
2013/06/20 PHP
微信access_token的获取开发示例
2015/04/16 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
2019/12/18 Python
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
企业给企业的表扬信
2014/01/13 职场文书
幼儿园开学家长寄语
2014/01/19 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
干部外出学习心得体会
2016/01/18 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
利用Python实现模拟登录知乎
2022/05/25 Python