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 相关文章推荐
javascript radio 联动效果
Mar 04 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
Jun 26 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
JavaScript常用本地对象小结
Mar 28 Javascript
ThinkJS中如何使用MongoDB的CURD操作
Dec 13 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
Mar 09 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
详解VueJS 数据驱动和依赖追踪分析
Jul 26 Javascript
vue父组件向子组件动态传值的两种方法
Nov 11 Javascript
angular 组件通信的几种实现方式
Jul 13 Javascript
apicloud拉起小程序并传递参数的方法示例
Nov 21 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
php小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
XML的代替者----JSON
2007/07/21 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
json 实例详细说明教程
2009/10/31 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python将文本转换成图片输出的方法
2015/04/28 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
python TCP包注入方式
2020/05/05 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
大学生村官事迹材料
2014/01/21 职场文书
年终总结会议主持词
2014/03/17 职场文书
安全演讲稿开场白
2014/08/25 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python