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 相关文章推荐
扩展JS Date对象时间格式化功能的小例子
Dec 02 Javascript
JS 弹出层 定位至屏幕居中示例
May 21 Javascript
javascript自动切换焦点控制效果完整实例
Feb 02 Javascript
JavaScript遍历求解数独问题的主要思路小结
Jun 12 Javascript
AngularJS入门教程之控制器详解
Jul 27 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
jQuery实现两个select控件的互移操作
Dec 22 Javascript
axios基本入门用法教程
Mar 25 Javascript
老生常谈combobox和combotree模糊查询
Apr 17 Javascript
AngularJS实现注册表单验证功能
Oct 16 Javascript
vue+Element-ui实现分页效果实例代码详解
Dec 10 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
DSP接收机前端设想
2021/03/02 无线电
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
php 变量定义方法
2009/06/14 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
PHP仿盗链代码
2012/06/03 PHP
yii上传文件或图片实例
2014/04/01 PHP
php魔术变量用法实例详解
2014/11/13 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
js实现随机点名程序
2020/09/17 Javascript
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
利用Python爬取可用的代理IP
2016/08/18 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
python怎么删除缓存文件
2020/07/19 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
python 基于wx实现音乐播放
2020/11/24 Python
自荐信封面
2013/12/04 职场文书
学生违反校规检讨书
2014/10/28 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书