2012-09-26 12 views
7

To jest brudna wersja mojej aplikacji internetowej JSFiddle, jednak nie rozumiem, jak poprawnie dostosować datę z Uniksa TimeStamp, wszystko, co chcę wyświetlić to miesiąc, dzień i rok.Prawidłowe wyświetlanie daty Instagramu

Każda pomoc będzie bardzo mile widziana!

http://jsfiddle.net/89YCe/

Oto kod:

$(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>\ 
        "); 
      } 
     } 
    }); 
});​ 

Odpowiedz

14

Tutaj jesteś:

$(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; 
      } 
     } 
    }); 
}); 

I live demo z tej pracy http://jsfiddle.net/89YCe/2/

+0

To wydaje się działać, dziękuję bardzo! – tbremer

+0

@tbremer Nie ma za co! –

2

z poprzedniej odpowiedzi byłem uzyskanie "NaN" w wielu przypadkach.

Instagram wykorzystuje znacznik czasu Uniksa i znalazłem ten skrypt działa najlepiej:

$(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; 
     } 
    } 
}); 

});

oto jsfiddle: http://jsfiddle.net/jgknott/V5TCs/

+0

Facet, którego rocka, pierwsza odpowiedź działa dobrze, ale będzie renderować daty z liczbami, odpowiadasz słodko, możesz przejąć kontrolę nad wszystkim dzięki. –

0

Oto miły fabryka angularjs zrobiłem do wyświetlania daty dokładnie jak Instagram czy:

.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; 
    }; 
}])