Neo預設的留言是沒有年份的,我只能憑記憶去猜這段留言的年份,剛開始時我曾經為此而煩惱了一段時間。下面的部份可能有點難懂,不過這是我是為自己的研究而寫下的筆記,所以看不明白也是正常的XD。
首先,你必須先了解Neo對日期的做了什麼處理。在function updateLabelPosts(json)。
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
var selfurl;
postTitle[i] = entry.title.$t;
postContent[i] = entry.content.$t;
postDate[i] = entry.published.$t.substring(0,10);
entryid = entry.id.$t;
start = entryid.indexOf('post-');
postId[i] = entryid.substr(start+5);
entry.published.$t就是要Neo去取得日期的資料,得到的資料長這樣子「2008-07-24T23:59:00.002+08:00」。
因為我們只需要日期,所以後面要加上substring(0,10),為的是取出「2008-07-24」的部份,更詳細的可到W3Schools JavaScript substring() Method查看。
取得日期後,下一步是將日期輸出到網頁上。在function updatePost(index)。
function updatePost(index) {
var datediv = document.getElementById("PostDate");
var titlediv = document.getElementById("PostTitle");
var contentdiv = document.getElementById("PostContent");
var tagsdiv = document.getElementById("PostTags");
var editdiv = document.getElementById("PostEditLink");
var commentdiv = document.getElementById("PostCommentLink");
datediv.innerHTML = dateString(postDate[index], 1);
titlediv.innerHTML = '<a href="' + postPermalink[index] + '">' + postTitle[index] + '</a>';
dateString(postDate[index], 1)就是將postDate[index],亦即我們上面提到的「2008-07-24」扔到function dateString加工後再輸出到網頁。
function dateString(rawdate, needYear) {
monthnames[1] = "January";
monthnames[2] = "February";
monthnames[3] = "March";
monthnames[4] = "April";
monthnames[5] = "May";
monthnames[6] = "June";
monthnames[7] = "July";
monthnames[8] = "August";
monthnames[9] = "September";
monthnames[10] = "October";
monthnames[11] = "November";
monthnames[12] = "December";
var year = rawdate.substring(0,4);
var month = rawdate.substring(5,7);
var day = rawdate.substring(8,10);
str = monthnames[parseInt(month,10)] + ' ' + day;
if (needYear) str = str + ', ' + year;
return (str);
}
從這裡可以看到,dateString(postDate[index], 1)的那個「1」是代表要將年份的資料都顯示出來。而這亦是你修改日期格式的地方。經加工後,「2008-07-24」就會變成我們看到的「September 4, 2008」。
上面如果看的懂的話,要在留言加上年份也不是難事了。看不懂的就直接跟著下面做吧。在function updateCommentsPage(page)。
if (oldestFirstOrder == 1) {
max = totalComments - 1 - (page * 10);
min = totalComments - 1 - ((page+1) * 10);
if (min < 0)
min = 0;
for (var i = max; i >= min; i--) {
disp = disp + "<dt class='comment-author'>" + "On " + dateString(commentDate[i], 1) + ", " + commentAuthor[i] + " said...</dt>";
if (commentAuthor[i] == blogAuthor) {
disp = disp + "<dd class='comment-body-author'>" + commentContent[i] + "</dd><br/>";
} else {
disp = disp + "<dd class='comment-body'>" + commentContent[i] + "</dd><br/>";
}
}
} else {
max = (page + 1) * 10;
if (max > totalComments)
max = totalComments;
for (var i = page * 10; i < max; i++) {
disp = disp + "<dt class='comment-author'>" + "On " + dateString(commentDate[i], 1) + ", " + commentAuthor[i] + " said...</dt>";
if (commentAuthor[i] == blogAuthor) {
disp = disp + "<dd class='comment-body-author'>" + commentContent[i] + "</dd><br/>";
} else {
disp = disp + "<dd class='comment-body'>" + commentContent[i] + "</dd><br/>";
}
}
}
答案是,你只需要將「0」改成「1」就可以了。那如果我連時間都想加上去呢?看看下面之後試試自己改出來吧。
rawdate.substring(0,4) //這是「年」
rawdate.substring(5,7) //這是「月」
rawdate.substring(8,10) //這是「日」
rawdate.substring(11,16) //這是「時間」
呼,好眼花。
發佈留言