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 相关文章推荐
拖动Html元素集合 Drag and Drop any item
Dec 22 Javascript
jquery制作搜狐快站页面效果示例分享
Feb 21 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
js阻止移动端页面滚动的两种方法
Jan 25 Javascript
javascript图片预览和上传(兼容IE)
Mar 15 Javascript
JavaScript字符串_动力节点Java学院整理
Jun 27 Javascript
JS解析url查询参数的简单代码
Aug 06 Javascript
微信小程序 获取session_key和openid的实例
Aug 17 Javascript
vue根据进入的路由进行原路返回的方法
Sep 26 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
Sep 27 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
Dec 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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
PHP中常用的魔术方法
2017/04/28 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
layui导出所有数据的例子
2019/09/10 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
keras K.function获取某层的输出操作
2020/06/29 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
会计专业大学生求职信范文
2014/01/28 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
学前班语言教学计划
2015/01/20 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
利用python做表格数据处理
2021/04/13 Python
TensorFlow的自动求导原理分析
2021/05/26 Python
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android