2012-09-26 109 views
7

这是我的Web应用程序的一个肮脏的JSFiddle版本,但是,我不明白如何从Unix TimeStamp中适当调整日期,我要显示的只是月份,日期和年份。正确显示Instagram日期

任何帮助将不胜感激!

http://jsfiddle.net/89YCe/

这里是代码:

$(function() { 
    $.ajax({ 
     type: "GET", 
     dataType: "jsonp", 
     cache: false, 
     url: "https://api.instagram.com/v1/tags/crookedspaces/media/recent/?access_token=16741082.1b07669.121a338d0cbe4ff6a5e04543158a4f82", 
     success: function(data) { 
      console.log(data); 
      //OKAY, now lets get to the pretty stuff, INSTAGRAM PEEKTARS. 
      for (var i = 0; i < 5; i++) { 
        $(".instagram").append("\ 
         <div class='instagram-feed'>\ 
          <img class='instagram-image' src='" + data.data[i].images.standard_resolution.url +"' width='325px'/>\ 
          <div class='igHover2'>\ 
           posted by: "+data.data[i].user.username+"<br />\ 
           posted on: "+Date(data.data[i].created_time).toString()+"<br />\ 
          </div />\ 
         </div>\ 
        "); 
      } 
     } 
    }); 
});​ 

回答

14

给你:

$(function() { 
    $.ajax({ 
     type: "GET", 
     dataType: "jsonp", 
     cache: false, 
     url: "https://api.instagram.com/v1/tags/crookedspaces/media/recent/?access_token=16741082.1b07669.121a338d0cbe4ff6a5e04543158a4f82", 
     success: function(data) { 
      console.log(data); 
      //OKAY, now lets get to the pretty stuff, INSTAGRAM PEEKTARS. 
      for (var i = 0; i < 5; i++) { 
       var date = new Date(parseInt(data.data[i].created_time) * 1000); 
        $(".instagram").append("\ 
         <div class='instagram-feed'>\ 
          <img class='instagram-image' src='" + data.data[i].images.standard_resolution.url +"' width='325px'/>\ 
          <div class='igHover2'>\ 
           posted by: "+data.data[i].user.username+"<br />\ 
           posted on: "+(date.getMonth()+1)+"/"+date.getDate()+"/"+date.getFullYear()+"<br />\ 
          </div />\ 
         </div>\ 
        "); 
       date = null; 
      } 
     } 
    }); 
}); 

而与此工作http://jsfiddle.net/89YCe/2/

+0

这似乎是工作,太感谢你了! – tbremer

+0

@tbremer不客气! –

2

与以前的答案我是一个现场演示在很多情况下获得“NaN”。

Instagram的使用Unix时间戳,我发现这个脚本最好的工作:

$(function() { 
$.ajax({ 
    type: "GET", 
    dataType: "jsonp", 
    cache: false, 
    url: "https://api.instagram.com/v1/tags/breathadvisor/media/recent/?access_token=16741082.1b07669.121a338d0cbe4ff6a5e04543158a4f82", 
    success: function(data) { 
     console.log(data); 
     //OKAY, now lets get to the pretty stuff, INSTAGRAM PEEKTARS. 
     for (var i = 0; i < 5; i++) { 
      var date = new Date(data.data[i].created_time * 1000); 
      var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; 
      var year = date.getFullYear(); 
      var month = months[date.getMonth()]; 
      var date = date.getDate(); 
      var time = month+', '+ date+' '+year ; 

       $(".instagram").append("\ 
        <div class='instagram-feed'>\ 
         <img class='instagram-image' src='" + data.data[i].images.standard_resolution.url +"' width='325px'/>\ 
         <div class='igHover2'>\ 
          posted by: "+data.data[i].user.username+"<br />\ 
          posted on: "+time+"<br />\ 
         </div />\ 
        </div>\ 
       "); 
      date = null; 
     } 
    } 
}); 

});

这里有一个的jsfiddle:http://jsfiddle.net/jgknott/V5TCs/

+0

你摇滚的家伙,第一个答案很好,但会用数字呈现日期,你回答是甜蜜的,你可以控制一切,谢谢。 –

0

这里是一个不错的angularjs工厂我显示日期完全一样的Instagram确实取得:

.factory('displaydate', ['$filter', function($filter) { 
    return function (date){ 
     // Split timestamp into [ Y, M, D, h, m, s ] 

     var actiondate = new Date(parseInt(date) * 1000); 
     var today = new Date(); 
     if(today.getDate() === actiondate.getDate() && today.getMonth() === actiondate.getMonth() && today.getYear() === actiondate.getYear()){ 
      var hourssince = today.getHours() - actiondate.getHours(); 
      var minutessince = today.getMinutes() - actiondate.getMinutes(); 
      var secondssince = today.getSeconds() - actiondate.getSeconds(); 
      if(hourssince > 0){ 
       date = hourssince+'u'; 
      }else if(minutessince > 0){ 
       date = minutessince+'m'; 
      }else{ 
       date = secondssince+'s'; 
      } 
     }else{ 
      var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
      var diffDays = Math.round(Math.abs((today.getTime() - actiondate.getTime())/(oneDay))); 
      if(diffDays >= 7){ 
       date = Math.round(diffDays/7)+'w'; 
      }else{ 
       if(diffDays == '0'){ 
        diffDays = '1'; 
       } 
       date = diffDays+'d'; 
      } 
     } 
     return date; 
    }; 
}])