2011年12月23日 星期五

[javascript]時間的操作

時間物件的實體化有四種

var dt = new Date();
var dt = new Date(milliseconds);
var dt = new Date(dateString);
var dt = new Date(year, month, day, hours, minutes, seconds, milliseconds);

如果是要現在時間,就用第一個即可。

第二種方法的 milliseconds 是從 1970/01/01 開始算。
這個數字通常不會是自己算,而是從別的地方傳來。
他的好處是,用一個 float 就可以表示一個時間,比字串更省空間。
同時排序、計算(時間加減)也更快速。
在 .Net 裡,所謂的 timestamp 就是這個數值;
python 裡,據說有些轉換上的問題, 也就沒有提供 datetime 直接產生 timestamp 的方法。
這裡先不提。
javascript 則是有 getTime() 方法可以產生這個數字。
但是要注意時區問題,不然會有時間差喔。

第三種方法的 dateString 就要看運氣了,格式還是要對 javascript 的胃口。
如果沒把握,以下格式是可以的:
"October 13, 1975 11:13:00"
"12-23 13:44:32, 2011"
"Dec 23 14:00:12 2011"
而我最愛的格式不行:
"2011-12-23 13:44:32"

第四種方法就穩定,每一項分開就不會有問題。

全部要注意的是千禧年問題,也就是以前常把四位數年份表示縮成兩位數,
請記得不要再這樣做了,這不是一個好習慣。

沒有留言:

張貼留言