2012-09-26 9 views
7

Esta es una versión sucia de JSFiddle de mi aplicación web, sin embargo, no entiendo cómo ajustar correctamente la fecha de Unix TimeStamp, todo lo que deseo mostrar es el mes, el día y el año.Visualización correcta de la fecha de Instagram

¡Cualquier ayuda sería muy apreciada!

http://jsfiddle.net/89YCe/

Aquí está el código:

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

Respuesta

14

aquí están:

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

Y una demostración en vivo con este trabajo http://jsfiddle.net/89YCe/2/

+0

Esto parece funcionar, muchas gracias! – tbremer

+0

@tbremer ¡De nada! –

2

con la respuesta anterior era obteniendo "NaN" en muchos casos.

Instagram utiliza una marca de tiempo Unix y me encontré con este script para trabajar lo mejor:

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

});

aquí hay un jsFiddle: http://jsfiddle.net/jgknott/V5TCs/

+0

Guy rock, la primera respuesta funciona bien, pero dará la fecha con números, tu respuesta es dulce, puedes tomar el control de todo gracias. –

0

Aquí es una fábrica AngularJS agradable que hice para mostrar fechas exactamente igual que Instagram hace:

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