var d = new Date(); var dqn = "&" + d.getMonth()+""+d.getDate()+""+d.getHours(); var dq = "?" + d.getMonth()+""+d.getDate()+""+d.getHours(); var request = [ { url: 'https://www.univcoopsumai.jp/ooita/rss/' + dq }, { url: 'https://kyushu.seikyou.ne.jp/ooita-coop/newlife/news/rss/cate_rss.php?a=cate_list_rss&news_cate_id=28'+ dqn } ]; var jqXHRList = []; for (var i = 0; i < request.length; i++) { jqXHRList.push($.ajax({ // $.ajaxの戻り値を配列に格納 url: request[i].url, type: 'get', dataType: 'xml', timeout: 5000 })); } // $.when関数を利用する // $.whenは可変長引数を取るので、apllyメソッドを利用して配列で渡せるようにする // $.whenのコンテキスト(applyの第一引数)はjQueryである必要があるので $ を渡す $.when.apply($, jqXHRList).done(function () { var json = []; var statuses = []; var jqXHRResultList = []; // 結果は仮引数に可変長で入る **順番は保証されている** // 取り出すには arguments から取り出す // さらにそれぞれには [data, textStatus, jqXHR] の配列になっている var data = []; for (var i = 0; i < arguments.length; i++) { var result = arguments[i]; json.push(result[0]); statuses.push(result[1]); jqXHRResultList.push(result[3]); } json;// => リクエストの配列と同じ順番で結果を参照できる var row = 0; var nodeName; var rss_cnt = 0; var limit = 10; var data = []; var feedsArr = new Array(); var cnt = json.length; //data[i] = new array(); for (var h = 0; h < json.length; h++) { $(json[h]).find('item').each(function() { data[row] = {}; $(this).children().each(function() { // 子要素を取得 nodeName = $(this)[0].nodeName; // 要素名 data[row][nodeName] = {}; // 初期化 attributes = $(this)[0].attributes; // 属性を取得 for (var i in attributes) { data[row][nodeName][attributes[i].name] = attributes[i].value; // 属性名 = 値 } data[row][nodeName]['text'] = $(this).text(); //console.log('nodeName : ' + nodeName + ' text : ' + data[row][nodeName]['text']); }); var ind = feedsArr.length; feedsArr[ind] = new Array(); feedsArr[ind][0] = Date.parse(data[row]['pubDate']['text']); // 日付順にソート feedsArr[ind][1] = data[row]['link']['text']; // リンク feedsArr[ind][2] = data[row]['pubDate']['text']; // 更新日時 //feedsArr[ind][3] = data[row]['description']['text']; // 記事本文 feedsArr[ind][4] = data[row]['title']['text']; // 記事タイトル //feedsArr[ind][5] = result.feed.title; // サイトタイトル row++; }); cnt--; if (cnt == 0) { $("#rss_cnt").html('お部屋探し一覧は' + feedsArr.length + '件です。'); feedsArr.sort(); feedsArr.reverse(); console.log(feedsArr); var sethtml; var settitle; var setcate; for (var j = 0; j < feedsArr.length && j < limit; j++) { settitle = feedsArr[j][4]; setcate = feedsArr[j][5]; if(feedsArr[j][5] != 'お部屋探し'){ setcate = '大分大学生のお部屋探し'; kekka = settitle.split(":"); if(kekka[1]) settitle = kekka[1]; } sethtml = '
' + "\n"; sethtml = sethtml + '
' + "\n"; sethtml = sethtml + '
' + unixdateformat(feedsArr[j][0]) + ' |' + setcate + '
' + "\n"; sethtml = sethtml + '
' + settitle + '
' + "\n"; sethtml = sethtml + '
' + "\n"; sethtml = sethtml + '
' + "\n"; $("#feed").append(sethtml); } if(j >= feedsArr.length ) $("#loadmore").hide(); } } }); function unixdateformat(str){ var weekDayList = [ "日", "月", "火", "水", "木", "金", "土" ] ; var objDate = new Date(str); var nowDate = new Date(); //現在時間との差 myHour = Math.floor((nowDate.getTime()-objDate.getTime()) / (1000*60*60)) + 1; var year = objDate.getFullYear(); var month = objDate.getMonth() + 1; var date = objDate.getDate(); var hours = objDate.getHours(); var minutes = objDate.getMinutes(); var seconds = objDate.getSeconds(); var weekDay = weekDayList[ objDate.getDay() ] ; // 曜日 if ( month < 10 ) { month = "0" + month; } if ( date < 10 ) { date = "0" + date; } // str = year + '/' + month + '/' + date + ' ' + hours + ':' + minutes + ':' + seconds; str = year + '年' + month + '月' + date + '日(' + weekDay + ")" ; var rtnValue = str; return rtnValue; }