1、时间对象函数
一、在写一些东西的时候,常常须要获取 “当前系统的时间对象”spa
二、要建立一个时间对象,使用new操做符和Date构造函数new Date();对象
三、返回值:返回表示日期的毫秒数ip
四、在调用Date构造函数而不传递参数的状况下,新建立的对象自动获取当前日期和时间字符串
五、若是想根据特定的日期和时间建立日期对象,必需要传入参数,ECMAScript提供了两个方法:get
(1) Date.parse()方法接收一个表示日期的字符串参数,而后尝试根据这个字符串返回相应日期的毫秒数。若是传入Date.parse()方法的字符串不能表示日期,那么它会返回NaN.后台
若是直接把将表示日期的字符串传递给Date构造函数,也会在后台调用Date.parse()。换句话说,下面的两行代码是等价的:
var t = new Date(Date.parse('December 28,2015'));
var t = new Date('December 28,2015');构造函数
(2) Date.UTC()方法一样也返回表示当前日期的毫秒数。数据类型
参数中,只有前两个参数(年和月)必须的,若是没有提供表明月份的参数,则默认为1;若是其他参数(时、分、秒)都没提供,则默认为0,也就是午夜零时 。定时器
下面的两行代码也是等价的:
var t = new Date(Date.UTC(2015,11,28,15,29,30)); //(注意:月份是基于0开始的,一月是0,二月是1... 以此类推)
var t = new Date(2015,11,28,15,29,30); // 注意:这里是将表示日期的参数直接传递给Date构造函数里,但这行代码是基于系统设置的本地时区建立的
六、若是你想获取到其余的一些信息:(如下全部的 typeof 都是 number数据类型,所以获得的结果都是数字)
var iYear = myTime.getFullYear(); // 年
var iMonth = myTime.getMonth()+1; // 月 注意:getMonth 的一月份是从零开始计算的,所以必需要在后面加1才会准确。
var iDate = myTime.getDate(); // 日
var iWeek = myTime.getDay(); // 星期 // 0,1,2,3,4,5,6
注意:所以数据类型是number,因此星期一显示出来的是数字1,星期二是数字2,依次类推.... 而星期日显示的则是数字0;
var iHours = myTime.getHours(); // 小时
var iMin = myTime.getMinutes(); // 分钟
var iSec = myTime.getSeconds(); // 秒
七、 对于星期来讲,要作一个判断,让0等于星期日,让数字都变成'星期几'的文字;
if(iWeek===0)iWeek='星期日';
if(iWeek===1)iWeek='星期一';
if(iWeek===2)iWeek='星期二';
if(iWeek===3)iWeek='星期三';
if(iWeek===4)iWeek='星期四';
if(iWeek===5)iWeek='星期五';
if(iWeek===6)iWeek='星期六';
2、定时器:在某必定的时间以内发生一件事,就是定时器(具备时间的概念)。
var timer = setInterval( 函数、毫秒 ); // 在规定的时间内重复执行
clearInterval( timer ); // 清除
var timer = setTimerout( 函数、毫秒); // 在规定的时间后只执行一次
clearTimeout(timer); // 清除
3、倒计时
一、首先要明白什么的倒计时,将来的时间点(不变的)和 如今的时间点(可变的)的差
var iNow = new Date();
// 若是说想找到将来的时间点,new Date 的括号里是能够放参数的,设置一个将来的时间点
// 参数分为两种形式: (数字形式和字符串形式,二者选一)
一、数字形式:new Date(2015,11,24,15,40,30) // 注: 这里要记住月份是从0开始的,因此若是这月是12月份的话,写的时候要写成11月
var iNew = new Date(2015,11,24,15,40,30);
二、字符串形式:new Date( 'December 24,2015 15:40:30' )
var iNew = new Date( 'December 24,2015 15:40:30' );
月份的英文单词(January、February、March、April、May、June、July、August、September、October、November、December)
// 求出将来时间点和如今时间点的差:
var t = Math.floor(iNew-iNow)/1000;
注意: iNew-iNow相减以后是以毫秒为单位的,所以要除以1000,改成以秒为单位;
这里是不能有小数点的存在,因此要用到向下取整Math.floor;
二、公式:
倒计时要用到时分秒:1分钟=60秒,1小时=3600秒,1天=86400秒;
按照以秒来计算的话:
天:Math.floor(t/86400);
时:Math.floor(t/86400/3600);
分:Math.floor(t/86400%3600/60);
秒:t%60;
三、用字符串拼接起来:
var str = Math.floor(t/86400) + '天' + Math.floor(t/86400/3600) + '时' + Math.floor(t/86400%3600/60) + '分' + t%60 + '秒';