javascript基础--时间对象,引用类型

基础类型有哪些?复杂类型有哪些?有什么特征?

基础类型:number,boolean,string

复杂类型:object,array,function

特征:

在上面的图片,可以看出基础类型和复杂类型的特征,因为不是很清楚计算机基础,就不通过计算机基础来描述了

 

时间对象:

JavaScript内置时间对象,Date类型使用 UTC国际时间,是从1970年1月1日算起的。Date类型保存的日期能够精确到1970年1月1日之前或之后的100000000年。

var now = new Date();/生成一个日期对象

Date.parse(日期)生成距离1970年1月1日的毫秒数,但是对日期的格式没有明确要求。

ES5添加了Date.now()生成当前时间的毫秒数。兼容(ie9+,Firefor3+,Safari3+,chrome)

 

写一个函数getIntv,获取从当前时间到指定日期的间隔时间

   function getIntv(date){

      var setToDate = Date.parse(date);
      var now = Date.now();
      var daySecond = 86400, hourSecond = 3600, minSecond = 60;     
      var intvTime;

        if(setToDate > now){
          intvTime = Math.floor((setToDate - now)/1000);
          var days = Math.floor(intvTime/daySecond);
          var hours = Math.floor((intvTime-(days*daySecond))/hourSecond);
          var mins= Math.floor((intvTime-(daySecond*days)-(hours*hourSecond))/minSecond);
          var seconds = Math.floor(intvTime-(daySecond*days)-(hours*hourSecond)-(minSecond*mins));
          return '距离'+date+'还有'+days+'天'+hours+'小时'+mins+'分'+seconds+'秒';
        }else{
          intvTime = Math.floor((now - setToDate)/1000);
          var days = Math.floor(intvTime/daySecond);
          var hours = Math.floor((intvTime-(days*daySecond))/hourSecond);
          var mins= Math.floor((intvTime-(daySecond*days)-(hours*hourSecond))/minSecond);
          var seconds = Math.floor(intvTime-(daySecond*days)-(hours*hourSecond)-(minSecond*mins));
          return '相比'+date+'已经过去'+days+'天'+hours+'小时'+mins+'分'+seconds+'秒';
        }


      }

  

把数字日期改成中文日期

   var str = "2016-11-12";
   function getChsDate(date){
        var dict = ['零', '一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一'];
      var dateObj = new Date(date);
      var oYear = dateObj.getFullYear().toString();
      var oMonth = dateObj.getMonth()+1;
      var oDay = dateObj.getDate();
      return dict[oYear[0]] + dict[oYear[1]] + dict[oYear[2]] + dict[oYear[3]] + '年' + dict[oMonth] +'月' + dict[oDay] + '日';
   }
//getFullYear,getMonth等只能用在时间对象上,不可以用在毫秒数上
//getMonth()获取的月份要+1,因为这里的时间对象中11就是12月,需要手动+1;
//getDate()获取天数

获取N天前的日期:

 function getLastNDays(days){
   var intvDate = Date.now()-days*(24*60*60*1000);
   var date = new Date(intvDate);
   var year = date.getFullYear();
   var mon = date.getMonth()+1;
   var day = date.getDate();
   return year+'-'+mon+'-'+day;
 }

 var lastWeek = getLastNDays(7);
 var lastTenDay = getLastNDays(10);

  

posted @ 2016-07-21 15:34  chenyuru  阅读(218)  评论(0编辑  收藏  举报