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 相关文章推荐
My Desktop :) 桌面式代码
Dec 29 Javascript
JQuery 常用方法和事件详细介绍
Apr 18 Javascript
javascript仿php的print_r函数输出json数据
Sep 13 Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
ztree实现左边动态生成树右边为内容详情功能
Nov 03 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
Jun 25 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
Sep 27 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
python 重命名轴索引的方法
2018/11/10 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
python构造函数init实例方法解析
2020/01/19 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
工厂厂长的职责
2013/12/12 职场文书
旅游市场营销方案
2014/03/09 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
创先争优一句话承诺
2014/05/29 职场文书
护理专业求职信
2014/06/15 职场文书
拓展训练激励口号
2014/06/17 职场文书
管理工程专业求职信
2014/08/10 职场文书
群众路线对照检查材料
2014/09/22 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
综合素质评价自我评价
2015/03/06 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
python之基数排序的实现
2021/07/26 Python