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如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
JS获取后台Cookies值的小例子
Mar 04 Javascript
JQuery与JS里submit()的区别示例介绍
Feb 17 Javascript
jQuery实现购物车多物品数量的加减+总价计算
Jun 06 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
Sep 02 Javascript
vue组件如何被其他项目引用
Apr 13 Javascript
js移动端事件基础及常用事件库详解
Aug 15 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
Nov 14 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
JavaScript中var的重要性实例分析
Jul 09 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
js实现淘宝浏览商品放大镜功能
Oct 28 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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php中如何执行linux命令详解
2018/11/06 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
python中pickle模块浅析
2020/12/29 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
企业内控岗位的职责
2014/02/07 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python