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 相关文章推荐
qTip2 精致的基于jQuery提示信息插件
Feb 17 Javascript
利用谷歌地图API获取点与点的距离的js代码
Oct 11 Javascript
Select标签下拉列表二级联动级联实例代码
Feb 07 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
JavaScript处理解析JSON数据过程详解
Sep 11 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
Jan 03 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
Sep 17 Javascript
BootStrap 标题设置跨行无效的解决方法
Oct 25 Javascript
vue-cli + sass 的正确打开方式图文详解
Oct 27 Javascript
vue路由跳转传递参数的方式总结
May 10 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 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
Terran兵种对照表
2020/03/14 星际争霸
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
layui实现数据分页功能
2019/07/27 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
Python字典操作简明总结
2015/04/13 Python
pandas中Timestamp类用法详解
2017/12/11 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
《春雨》教学反思
2014/04/24 职场文书
电子商务求职信
2014/06/15 职场文书
好媳妇事迹材料
2014/12/24 职场文书
实习科室评语
2015/01/04 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
单独二胎证明
2015/06/24 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android
python代码实现备忘录案例讲解
2021/07/26 Python
详解redis在微服务领域的贡献
2021/10/16 Redis
Hive日期格式转换方法总结
2022/06/25 数据库