JS:怎么得到给定乌龟几月份冬眠结束的开始和结束时间

js得到今天日期、本周、本月、本年起始和结束日期
js得到今天日期、本周、本月、本年起始和结束日期,得到今天、昨天、明天日期。
function getDate(dates) {
var dd = new Date();
var n = dates || 0;
dd.setDate(dd.getDate() + n);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;
var d = dd.getDate();
m = m & 10 ? &0& + m:
d = d & 10 ? &0& + d:
var day = y + &-& + m + &-& +
getDate(dates)
//dates为数字类型,0代表今日,-1代表昨日,1代表明日,返回yyyy-mm-dd格式字符串,dates不传默认代表今日。
得到本周、上周、下周的起始、结束日期
function getMonday(type, dates) {
var now = new Date();
var nowTime = now.getTime();
var day = now.getDay();
var longTime = 24 * 60 * 60 * 1000;
var n = longTime * 7 * (dates || 0);
if (type == &s&) {
var dd = nowTime - (day - 1) * longTime +
if (type == &e&) {
var dd = nowTime + (7 - day) * longTime +
dd = new Date(dd);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;
var d = dd.getDate();
m = m & 10 ? &0& + m:
d = d & 10 ? &0& + d:
var day = y + &-& + m + &-& +
getMonday(type,dates)
//type为字符串类型,有两种选择,&s&代表开始,&e&代表结束,dates为数字类型,不传或0代表本周,-1代表上周,1代表下周
getMonday(&s&,1)
//得到下周一的yyyy-mm-dd格式日期
getMonday(&e&,1)
//得到下周日的yyyy-mm-dd格式日期
得到本月、上月、下月的起始、结束日期
function getMonth(type, months) {
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth() + 1;
if (Math.abs(months) & 12) {
months = months % 12;
if (months != 0) {
if (month + months & 12) {
month = (month + months) % 12;
} else if (month + months & 1) {
month = 12 + month +
month = month +
month = month & 10 ? &0& + month:
var date = d.getDate();
var firstday = year + &-& + month + &-& + &01&;
var lastday = &&;
if (month == &01& || month == &03& || month == &05& || month == &07& || month == &08& || month == &10& || month == &12&) {
lastday = year + &-& + month + &-& + 31;
} else if (month == &02&) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
lastday = year + &-& + month + &-& + 29;
lastday = year + &-& + month + &-& + 28;
lastday = year + &-& + month + &-& + 30;
var day = &&;
if (type == &s&) {
getMonth(type,months)
//type为字符串类型,有两种选择,&s&代表开始,&e&代表结束,months为数字类型,不传或0代表本月,-1代表上月,1代表下月
getMonth(&s&,1)
//得到下月第一天的yyyy-mm-dd格式日期
getMonth(&e&,1)
//得到下月最后一天的yyyy-mm-dd格式日期
得到今年、去年、明年的开始、结束日期
function getYear(type, dates) {
var dd = new Date();
var n = dates || 0;
var year = dd.getFullYear() + Number(n);
if (type == &s&) {
var day = year + &-01-01&;
if (type == &e&) {
var day = year + &-12-31&;
if (!type) {
var day = year + &-01-01/& + year + &-12-31&;
getYear(type,dates)
//type为字符串类型,有两种选择,&s&代表开始,&e&代表结束,dates为数字类型,不传或0代表今年,-1代表去年,1代表明年
getYear(&s&,1)
//得到明年第一天的yyyy-mm-dd格式日期
getYear(&e&,1)
//得到明年最后一天的yyyy-mm-dd格式日期JavaScript日期和时间
我的图书馆
JavaScript日期和时间
在日期和时间这一块的学习中发现,其实和其他大部分的高级语言中时间和日期的操作差不多,没什么特别的,但是要注意的就是 ECMAScript中规定的一些方法在各大浏览器中的实现方式是不一样的,也就是说存在浏览器的不兼容问题,练习中主要是用的IE9,很少测试其他浏览器,故后面的练习结果都是基于IE9浏览器的结果,其他浏览器的结果可能不一
1、Date 类型&& ECMAScript中的Date类型使用的是UTC(世界统一时间)日零时开始进过的毫秒来保存的时间与日期。
  创建一个Date对象和创建一个Object对象差不多,通过new关键字和构造函数来创建的。如果创建的时候没有传递参数,那么默认的获取的是本地的当前时间
  ECMAScript提供了两个静态方法 Date.parse()和Date.UTC();都是接受参数返回毫秒
  Date.parse()中接收的是表示日期的字符串,一般常用的格式都可以,年月日/日月年,如果没有给出时间就默认的是0,如' 12:34:24';当然也包含英文写法,'英文月名 日, 年',如 May 25, 2004;.'英文星期几 英文月名 日 年 时:分:秒 时区', 如 'Tue May 25 :00 GMT-070';如果不满足上面的一些要求就会返回一个NaN
  Eg:alert(Date.parse('6/13/2011')); //0
  Date.UTC()方法同样也返回表示日期的毫秒数, 但它与 Date.parse()在构建值时使用不同的信息。 (年份, 基于 0 的月份[0 表示 1 月, 1 表示 2 月], 月中的哪一天[1-31], 小时数[0-23],分钟,秒以及毫秒)。只有前两个参数是必须的。如果没有提供&月数,则天数为 1;如果省略其他参数,则统统为 0.& eg:Date.UTC();传递&的是有效的数值非字符串
  如果输入的参数不正确就会返回NaN或者是负数等非法信息 Date.UTC('2012-12');
  由于创建日期的时候是可以传递一个参数的,故需要输出指定的日期的时候,将上面两个方法的返回值传递给Date()的构造函数即可,new Date(Date.parse(''));new Date(Date.UTC());当然对于Date.parse()可以直接传递复合个数的数值字符串给Date构造函数,因为系统会自动的调用Date.parse()函数,eg:new Date('');
2、通用的方法:   toString()(返回UTC格式时间),  toLocaleString()(返回本地格式),  valueOf()(返回毫秒数)
 3、日期格式化方法
toDateString()
toTimeString()&
toLocaleDateString()
toLocaleTimeString()
toUTCString()&& toDateString() //以特定的格式显示星期几、月、日和年 toTimeString()& //以特定的格式显示时分秒和时区 toLocaleDateString() //以特定本地区格式显示日期 toLocaleTimeString() //以特定的本地区格式显示时间和时区 toUTCString()&& //以特定格式显示UTC日期
toDateString()
toTimeString()&
toLocaleDateString()
toLocaleTimeString()
toUTCString()&&
toDateString()
toTimeString()&
toLocaleDateString()
toLocaleTimeString()
toUTCString()&&
4、组件方法(重要)&  下面的set方法是设置时间变量中的某一部分值,get方法是获取值
box.getTime() //获取日期的毫秒数,和valueOf的返回值是一样的 box.setTime(100) //一毫秒数来设置时间,会改变整个日期,因为日期是以毫秒数保存的 box.getYear() //获取的是当前年份相对与1900的间隔时间 box.setYear(114) //以间隔时间来设置年份, box.getFullYear() //获取日期中的四位年份部分,返回的是当前年如:2014 box.setFullYear(2014) //设置四位年份部分,返回的是毫秒数 box.getMonth() //获取月份,如果没有指定月份,则从0开始算起(0表示一月份) box.setMonth(11) //设置月份,11表示的是第十二月份 box.getDate() //获取的是当前的日期 box.setDate(23) //设置日期,返回的是毫秒数 box.getDay() //获取的是当前时间中的星期几,0表示星期1,6表示星期6 box.setDay(2) //设置星期几 box.getHours() //获取当前日期中的时间部分 box.setHours(12) //返回时,24小时制 box.getMinutes() //获取当前日期中的分钟部分 box.setMinutes(22) //设置分钟 box.getSeconds()& //获取秒钟 box.setSeconds(23) //设置秒钟 box.getMillseconds() //获取毫秒数 box.setMillseconds(233) //设置毫秒数 box.getTimezoneOffset() //返回本地时间和UTC时间相差的分钟
box.getTime()
box.setTime(100)
box.getYear()
box.setYear(114)
box.getFullYear()
box.setFullYear(2014)
box.getMonth()
box.setMonth(11)
box.getDate()
box.setDate(23)
box.getDay()
box.setDay(2)
box.getHours()
box.setHours(12)
box.getMinutes()
box.setMinutes(22)
box.getSeconds()&
box.setSeconds(23)
box.getMillseconds()
box.setMillseconds(233)
box.getTimezoneOffset()
  注:上面的方法中除了最后一个方法 box.setTimezoneOffset()以外,其他的方法都具有UTC功能,以便和世界时间相协调,如:setDate()和getDate()对应的UTC方法是setUTCDate()和getUTCDate(
//创建一个日期类的对象,通过构造方法,此处没有传递参数,获取的是本的时间(浏览器各异)var time=new Date();alert(time);//Thu Jan 02 :46 GMT+0800 (China Standard Time)
//&&& Date.parse() 和 Date.UTC()&&& 是Date类型提供的两个静态方法。不需要创建对象的//Date.parse() 返回指定日期的毫秒数,指定日期有三种格式,不符合格式会返回NaN//& 字符串括起来的日月年&&& '4/3/2013';&&& var box=Date.parse('15/01/2013');&&& alert(box);//0&&& &&& var age=Date.parse('15-01-2013');&&& alert(age);//0&&& var time=Date.parse('');&&& alert(time);//0&&& alert(Date.parse(''));//NaN
//'英文月 日,年'&&& var time=Date.parse('May 25,2013');&&& alert(time);//0&&& time=Date.parse('May,25,2013');&&& alert(time);//0&&& var ti=Date.parse('25,May,2013');&&& alert(ti);//0&&& var t=Date.parse('2013,May,25');&&& alert(t);//0&&& var box=Date.parse('2013,25,May');&&& alert(box);//0&&& var age=Date.parse('2013-May-25');&&& alert(age);//NaN
//'英文星期几 英文月名 日 年 时:分:秒 时区', 如 Tue May 25 :00 GMT-070&&& alert(Date.parse('Tue May 25 :00 GMT-070'));//0
//如果想输出具体的日期和时间,可以把值传入 Data 的构造函数里面&&& var box=new Date(Date.parse('15-01-2013'));&&& alert(box);//Sat Mar 01 :00 GMT+0800 (China Standard Time)
&&& //可以不用写 Date.parse() 而是直接传入一个符合上面三种格式的日期,&&& //系统会自动的调用 Date.parse()方法&&& var box=new Date('15-01-2013');&&& alert(box);//Sat Mar 01 :00 GMT+0800 (China Standard Time)
//Date 对象及其在不同浏览器中的实现有许多奇怪的行为。其中有一种倾向是将超//出的范围的值替换成当前的值,以便生成输出。例如,在解析“January 32, 2007”时,有的//浏览器会讲其解释为“February 1, 2007” 。而 Opera 则倾向与插入当前月份的当前日期&&& var box=new Date('January 32, 2007');&&& alert(box);//Thu Feb 01 :00 GMT+0800 (China Standard Time)
//UTC 是国际统一时间& 我国为东八区,故UTC时间加上8小时为本地时间//Date.UTC()方法同样也返回表示日期的毫秒数, 但它与 Date.parse()在构建值时使用不同//的信息。 (年份, 基于 0 的月份[0 表示 1 月, 1 表示 2 月], 月中的哪一天[1-31], 小时数[0-23],//分钟,秒以及毫秒)。只有前两个参数是必须的。如果没有提供月数,则天数为 1;如果省//略其他参数,则统统为 0.
&&& alert(Date.UTC(2013,12));//0//如果输入非法值 则会返回负数或者 NaN&&& alert(Date.UTC('2013,13'));//NaN//同样将返回值传入到 Date的构造函数中就可以输出具体的值&&& alert(new Date(Date.UTC(,15,13,16)));&&& //Mon Dec 05 :16 GMT+0800 (China Standard Time)
/*&&& 通用方法& toString()(UTC格式) toLocaleString()(本地格式)&&& valueOf()(返回的是毫秒数)&&& var box=new Date(Date.UTC(,15,13,16));&&& alert(box);//Mon Dec 05 :16 GMT+0800 (China Standard Time)&&& alert(box.toString());//Mon Dec 05 :16 GMT+0800 (China Standard Time)&&& alert(box.toLocaleString());//?2011?-?12?-?05? ?23?:?13?:?16&&& alert(box.valueOf());//返回的是毫秒数&& 0
/*&&& 序列化方法&&&&&&& 都是按照特定的格式显示&&& var box =new Date();&&& alert(box);//Thu Jan 02 :58 GMT+0800 (China Standard Time)&&& alert(box.toDateString());//Thu Jan 02 2014&&& alert(box.toTimeString());//17:18:58 GMT+0800 (China Standard Time)&&& alert(box.toLocaleDateString());//2014?-?01?-?02? &&& alert(box.toLocaleTimeString());//17:18:30&&& alert(box.toUTCString());//以特定的格式显示完整的UTC时间& Thu, 02 Jan :54 GMT
/*&&& 组件方法&&& 获取年月日时分秒星期等等等等
&&& var box=new Date();&&& alert(box.getYear());//114&&& 获取的是相对于1900年的年份间隔&&& alert(box.getTime());//0&&& 返回的是毫秒数& 和valueOf()返回的值是一样的&&& alert(box.getDate());//2&&& alert(box.getFullYear());//2014&&& alert(box.getMonth());//0&&& // 0 代表的是一月&&& alert(box.getDay());//4&&&&&&& 星期几&&& alert(box.getHours());// 17&&&&&&& 返回的是本地的小时&&& alert(box.getMinutes());//30& 返回的是分钟数&&& alert(box.getSeconds());//48&&& 返回的是秒&&& alert(box.getMilliseconds());//884&&& 返回的是毫秒数
&&& alert(box.getTimezoneOffset());// -480&&& 返回的是本地时间和UTC时间相差的分钟数
TA的最新馆藏
喜欢该文的人也喜欢* 获取某周、某月、上月、某季度的开始日期、结束日期及判断日期第几周
//格式化日期:yyyy-MM-dd
function formatDate(date) {
var myyear = date.getFullYear();
var mymonth = date.getMonth()+1;
var myweekday = date.getDate();
if(mymonth & 10){
mymonth = "0" +
if(myweekday & 10){
myweekday = "0" +
return (myyear+"-"+mymonth + "-" + myweekday);
//获得某月的天数
function getMonthDays(paraYear,paraMonth){
var monthStartDate = new Date(paraYear, paraMonth, 1);
var monthEndDate = new Date(paraYear, paraMonth + 1, 1);
(monthEndDate
monthStartDate)/(1000
//获得某周的开始日期
function getWeekStartDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {
var weekStartDate = new Date(paraYear, paraMonth, paraDay + 1 - paraDayOfWeek);
return formatDate(weekStartDate);
//获得某周的结束日期
function getWeekEndDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {
var weekEndDate = new Date(paraYear, paraMonth, paraDay + (7 - paraDayOfWeek));
return formatDate(weekEndDate);
//获得某月的开始日期
function getMonthStartDate(paraYear,paraMonth){
var monthStartDate = new Date(paraYear, paraMonth, 1);
return formatDate(monthStartDate);
//获得某月的结束日期
function getMonthEndDate(paraYear,paraMonth){
var monthEndDate = new Date(paraYear,paraMonth, getMonthDays(paraYear,paraMonth));
return formatDate(monthEndDate);
//获得上月开始时间
function getLastMonthStartDate(paraYear, lastMonth){
var lastMonthStartDate = new Date(paraYear, lastMonth, 1);
return formatDate(lastMonthStartDate);
//获得上月结束时间
function getLastMonthEndDate(paraYear, lastMonth, lastMonth){
var lastMonthEndDate = new Date(paraYear, lastMonth, getMonthDays(lastMonth));
return formatDate(lastMonthEndDate);
//获得某季度的开始日期
function getQuarterStartDate(paraYear,paraSeason){
switch (paraSeason){
case '1' : return paraYear+"-01-01";
case '2' : return paraYear+"-04-01";
case '3' : return paraYear+"-07-01";
case '4' : return paraYear+"-10-01";
//获得某季度的结束日期
function getQuarterEndDate(paraYear,paraSeason){
switch (paraSeason){
case '1' : return paraYear+"-03-31";
case '2' : return paraYear+"-06-30";
case '3' : return paraYear+"-09-30";
case '4' : return paraYear+"-12-31";
//获取某年某周的开始日期function getBeginDateOfWeek(paraYear, weekIndex){
var firstDay = GetFirstWeekBegDay(paraYear);
//7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
var time=(weekIndex-1)*7*24*3600000;
var beginDay = firstD
//为日期对象 date 重新设置成时间 time
beginDay.setTime(firstDay.valueOf()+time);
return formatDate(beginDay);}
//获取某年某周的结束日期function getEndDateOfWeek(paraYear, weekIndex){
var firstDay = GetFirstWeekBegDay(paraYear);
//7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
var time=(weekIndex-1)*7*24*3600000;
var weekTime = 6*24*3600000;
var endDay = firstD
//为日期对象 date 重新设置成时间 time
endDay.setTime(firstDay.valueOf()+weekTime+time);
return formatDate(endDay);}
//获取日期为某年的第几周function GetWeekIndex(dateobj) {
var firstDay = GetFirstWeekBegDay(dateobj.getFullYear());
if (dateobj & firstDay) {
firstDay = GetFirstWeekBegDay(dateobj.getFullYear() - 1);
d = Math.floor((dateobj.valueOf() - firstDay.valueOf()) / );
return Math.floor(d / 7) + 1;
//获取某年的第一天function GetFirstWeekBegDay(year) {
var tempdate = new Date(year, 0, 1);
var temp = tempdate.getDay();
if (temp == 1){
temp = temp == 0 ? 7 :
tempdate = tempdate.setDate(tempdate.getDate() + (8 - temp));
return new Date(tempdate);
浏览: 4781 次
来自: 珠海
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'JavaScript获得一个时间段的起始时间_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
JavaScript获得一个时间段的起始时间
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(533)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'JS获取 本周、上周、本月、上月、本季度、上季度的开始日期和结束日期',
blogAbstract:'/**&* 获取本周、本季度、本月、上月的开始日期、结束日期&*/var now = new Date(); //当前日期',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:5,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 月结束新月份开始 的文章

 

随机推荐