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
Sep 24 Javascript
判断JavaScript对象是否可用的最正确方法分析
Oct 03 Javascript
JS在IE和FireFox之间常用函数的区别小结
Mar 12 Javascript
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
Mar 09 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
Vue通过ref父子组件拿值方法
Sep 12 Javascript
node上的redis调用优化示例详解
Oct 30 Javascript
使用JS判断页面是首次被加载还是刷新
May 26 Javascript
Vue实现开关按钮拖拽效果
Sep 22 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
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
js Html结构转字符串形式显示代码
2011/11/15 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
Bootstrap基础学习
2015/06/16 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
微信小程序实现弹出菜单动画
2019/06/21 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
Python实现批量转换文件编码的方法
2015/07/28 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
鲜花方阵解说词
2014/02/13 职场文书
给小学生的新年寄语
2014/04/04 职场文书
幼师求职自荐信
2014/05/31 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
求职意向书范本
2015/05/11 职场文书
步步惊心观后感
2015/06/12 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
python中24小时制转换为12小时制的方法
2021/06/18 Python