網頁

內蒙古之旅第七天:完

海風 2009年7月29日 02:39

4:45am Morning call XD,不過也不需要Morning call啦,根本沒睡。懷著依依不捨的心情收拾行裝,雖然這個步驟每天都在做,但今天執拾得特別慢。一邊拾,一邊回想這幾天所發生的事—草原、沙漠、石窟、懸空寺和王府井。

內蒙古之旅第六天:北京歡迎你

海風 2009年7月28日 01:02

5:15am Morning call。其實旅行來到第六天,對我們來說都差不多等於是最後一天了,因為明天其實是沒有行程,而我們亦要乘中午機回香港。最後一天,好好珍惜吧。

內蒙古之旅第五天:別了內蒙

海風 2009年7月20日 15:01

5:30am一天比一天早的Morning call又來了。吸取了先前的教訓,今天早了十五分鐘便起床了,高速準備好行李後打算找其他人快點去餐廳。可是另一間房的人只是剛剛起床=_=,最後只有我和阿Wing兩個早下去先用餐了。

內蒙古之旅第四天:沙漠

海風 2009年7月17日 22:45

6:30am一大清早又收到Morning call knock,這次是小張來叫我們呢。原來先前Joey已經敲了一次,但我們沒有人起床,而團友們都在吃早餐了。不用說也知道太陽已經高掛在天上。環顧四周,原來大家還在睡呢,看來大家都錯過了草原的日出。

內蒙古之旅第三天:大草原

海風 2009年7月12日 17:35

6:15am起床,morning call比昨天早了15分鐘。昨晚真是非常好睡,至少有冷氣,床又舒服。不過又要收拾行李了……。不愧是五星級酒店的餐廳,裝潢有氣派,冷氣又涼XD。

Neo的日期格式設定

2009年5月11日    

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) //這是「時間」

呼,好眼花。

尚未有回應