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 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
js日期时间补零的小例子
Mar 05 Javascript
JS检测图片大小的实例
Aug 21 Javascript
jQuery插件Timelinr 实现时间轴特效
Oct 04 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
BootStrap 标题设置跨行无效的解决方法
Oct 25 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
vue 1.0 结合animate.css定义动画效果
Jul 11 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 Javascript
基于vue 动态菜单 刷新空白问题的解决
Aug 06 Javascript
手把手带你搭建一个node cli的方法示例
Aug 07 Javascript
Vue实现小购物车功能
Dec 21 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下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
python实现校园网自动登录的示例讲解
2018/04/22 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
详解python中递归函数
2019/04/16 Python
Python何时应该使用Lambda函数
2019/07/02 Python
django基于restframework的CBV封装详解
2019/08/08 Python
python web框架 django wsgi原理解析
2019/08/20 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
python制作朋友圈九宫格图片
2019/11/03 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
Python post请求实现代码实例
2020/02/28 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
Python之多进程与多线程的使用
2021/02/23 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
党校自我鉴定范文
2013/10/02 职场文书
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
小英雄雨来观后感
2015/06/09 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
初一语文教学反思
2016/03/03 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
服务器SVN搭建图文安装过程
2022/06/21 Servers