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 相关文章推荐
非常漂亮的JS代码经典广告
Oct 21 Javascript
JQuery对id中含有特殊字符的转义处理示例
Sep 06 Javascript
取消选中单选框radio的三种方式示例介绍
Dec 23 Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 Javascript
jquery+php实现搜索框自动提示
Nov 28 Javascript
推荐6款基于jQuery实现图片效果插件
Dec 07 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
jquery使用FormData实现异步上传文件
Oct 25 jQuery
vue设置一开始进入的页面教程
Oct 28 Javascript
Python机器学习之决策树和随机森林
Jul 15 Javascript
vue选项卡切换的实现案例
Apr 11 Vue.js
网页下载文件期间如何防止用户对网页进行其他操作
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 curl伪造IP地址和header信息代码实例
2015/04/27 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
PHP 断点续传实例详解
2017/11/11 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python生成随机MAC地址
2015/03/10 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python入门必须知道的11个知识点
2018/03/21 Python
Sanic框架应用部署方法详解
2018/07/18 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
python常量折叠基础知识点讲解
2021/02/28 Python
学生安全教育材料
2014/02/14 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
单位工作证明范文
2014/09/14 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
2015年检验科工作总结
2015/04/27 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
详解JavaScript中Arguments对象用途
2021/08/30 Javascript