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 html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
javascript 实现键盘上下左右功能的小例子
Sep 15 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
jQuery $命名冲突解决方案汇总
Nov 13 Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
AngularJS ng-mousedown 指令
Aug 02 Javascript
js判断文件格式及大小的简单实例(必看)
Oct 11 Javascript
JavaScript实现自动切换图片代码
Oct 11 Javascript
使用webpack搭建vue项目及注意事项
Jun 10 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
深入探讨前端框架react
2015/12/09 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
详解vue组件中使用路由方法
2019/02/12 Javascript
js new Date()实例测试
2019/10/31 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python mqtt 客户端的实现代码实例
2019/09/25 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
Python异常处理机制结构实例解析
2020/07/23 Python
python lambda的使用详解
2021/02/26 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
总经理助理职责
2014/02/04 职场文书
财务务虚会发言材料
2014/10/20 职场文书
工商行政处罚决定书
2015/06/24 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
python如何获取网络数据
2021/04/11 Python
React Fragment介绍与使用详解
2021/11/11 Javascript