【问题标题】:Properly displaying Instagram date正确显示 Instagram 日期
【发布时间】:2012-09-26 23:48:33
【问题描述】:

这是我的网络应用程序的脏 JSFiddle 版本,但是,我不明白如何从 Unix 时间戳中正确调整日期,我只想显示月、日和年。

任何帮助将不胜感激!

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

【问题讨论】:

    标签: javascript api date instagram


    【解决方案1】:

    你在这里:

    $(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/

    【讨论】:

      【解决方案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/

      【讨论】:

      • 你摇滚,第一个答案效果很好,但会用数字呈现日期,你的回答很甜蜜,你可以控制一切谢谢。
      【解决方案3】:

      这是一个很好的 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;
          };
      }])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-07
        • 2019-04-22
        • 2015-02-14
        • 2016-06-07
        • 2018-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多