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乱码与contentType属性设置问题解决方案
Jan 07 Javascript
鼠标滚轴控制文本框值的JS代码
Nov 19 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
Jun 21 Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 Javascript
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
Dec 19 Javascript
旺旺在线客服代码 旺旺客服代码生成器
Jan 09 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
Sep 10 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 Javascript
详解ES6 扩展运算符的使用与注意事项
Nov 12 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 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支持YAML配置文件的设置方法
2015/03/17 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
JavaScript中string对象
2015/06/12 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
React 组件间的通信示例
2018/06/14 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
求高于平均分的学生学号及成绩
2016/09/01 面试题
三年大学生活自我鉴定
2014/01/21 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
残疾人小组计划书
2014/04/27 职场文书
入党申请书怎么写?
2019/06/21 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS