时间对象和倒计时

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 + '秒';

相关文章
相关标签/搜索