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 相关文章推荐
javascript 广告后加载,加载完页面再加载广告
Nov 25 Javascript
原来Jquery.load的方法可以一直load下去
Mar 28 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 Javascript
javascript函数特点实例分析
May 14 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
Bootstrap开发实战之第一次接触Bootstrap
Jun 02 Javascript
jquery实现垂直和水平菜单导航栏
Aug 27 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
Nov 18 Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
详解Vue2的diff算法
Jan 06 Vue.js
网页下载文件期间如何防止用户对网页进行其他操作
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 addslashes 函数详细分析说明
2009/06/23 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
javascript删除一个html元素节点的方法
2014/12/20 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
go和python变量赋值遇到的一个问题
2017/08/31 Python
zookeeper python接口实例详解
2018/01/18 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
Flask之请求钩子的实现
2018/12/23 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Python帮你识破双11的套路
2019/11/11 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
最新大学生创业计划书写作攻略
2014/04/02 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
初中体育教学随笔
2015/08/15 职场文书
导游词之无锡唐城
2019/12/12 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python