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 相关文章推荐
一步一步教你写一个jQuery的插件教程(Plugin)
Sep 03 Javascript
yepnope.js 异步加载资源文件
Sep 08 Javascript
js对象关系图 方便dom操作
Mar 18 Javascript
jQuery表单域属性过滤器用法分析
Feb 10 Javascript
jQuery中$.each()函数的用法引申实例
May 12 Javascript
xmlplus组件设计系列之图标(ICON)(1)
May 05 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
Dec 09 Javascript
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 Javascript
vue路由传参三种基本方式详解
Dec 09 Javascript
JavaScript实现打砖块游戏
Feb 25 Javascript
微信小程序自定义顶部组件customHeader的示例代码
Jun 03 Javascript
js+audio实现音乐播放器
Sep 13 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
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
防止文件缓存的js代码
2013/01/10 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
python交换两个变量的值方法
2019/01/12 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
在线课程:Skillshare
2019/04/02 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
药学专业大学生自荐信
2013/09/28 职场文书
毕业生教师求职信
2013/10/20 职场文书
教师实习自我鉴定
2013/12/13 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
管理标语大全
2014/06/24 职场文书
内勤岗位职责范本
2015/04/13 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
Go语言应该什么情况使用指针
2021/07/25 Golang
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python
Java 多线程协作作业之信号同步
2022/05/11 Java/Android