JS中Date對象使用

//全局函數
Date markdown

//Date 類的靜態方法
Date.parse
Date.UTC 函數

//Date 對象的創建方法
new Date()
new Date(毫秒數)
new Date(標準時間格式字符串)
new Date(年, 月, 日, 時, 分, 秒, 毫秒) 對象

//Date 對象的更多方法
getFullYear (getUTCFullYear)
getMonth (getUTCMonth)
getDate (getUTCDate)
getDay (getUTCDay)
getHours (getUTCHours)
getMinutes (getUTCMinutes)
getSeconds (getUTCSeconds)
getMilliseconds (getUTCMilliseconds)
getTime
getTimezoneOffset 字符串

setFullYear (setUTCFullYear)
setMonth (setUTCMonth)
setDate (setUTCDate)
setHours (setUTCHours)
setMinutes (setUTCMinutes)
setSeconds (setUTCSeconds)
setMilliseconds (setUTCMilliseconds)
setTime get

toDateString
toTimeString
toUTCString
toLocaleString
toLocaleDateString
toLocaleTimeString
toString string

valueOf

根據一個或多個數值創建時間對象, 及本地計時與世界標準計時的區別

//先用最容易理解的方式創建一個時間對象
var d = new Date(2009, 2, 27, 12, 59, 59, 999); class

alert(d); //Fri Mar 27 12:59:59 UTC+0800 2009
alert(d.toString()); //Fri Mar 27 12:59:59 UTC+0800 2009
alert(d.toUTCString()); //Fri, 27 Mar 2009 04:59:59 UTC
alert(d.toLocaleString()); //2009年3月27日 12:59:59 object

alert(d.toDateString()); //Fri Mar 27 2009
alert(d.toLocaleDateString()); //2009年3月27日 date

alert(d.toTimeString()); //12:59:59 UTC+0800
alert(d.toLocaleTimeString()); //12:59:59 方法

/* 時間在計算機中被記爲一個整數, 這是從 UTC 時間的 1970-1-1 0:0:0 到此時間的毫秒數 */
alert(d.valueOf()); //1238129999999
alert(d.getTime()); //1238129999999

/* 獲取本地時間和世界標準計時的時差 */
alert(d.getTimezoneOffset()); //-480; 單位是分鐘, 也就是 8 小時

/* 直接使用時間值(毫秒數, 譬如上面的: 1238129999999)創建時間對象 */
var d = new Date(1238129999999);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

/* 但創建函數有 2-7 個參數時, 將是根據 「年, 月, 日, 時, 分, 秒, 毫秒」 創建時間 */
d = new Date(2009, 2, 27, 12, 59, 59, 999);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date(2009, 2, 27, 12, 59, 59);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date(2009, 2, 27, 12, 59);
alert(d.toLocaleString()); //2009年3月27日 12:59:00

d = new Date(2009, 2, 27, 12);
alert(d.toLocaleString()); //2009年3月27日 12:00:00

d = new Date(2009, 2, 27);
alert(d.toLocaleString()); //2009年3月27日 0:00:00

d = new Date(2009, 2);
alert(d.toLocaleString()); //2009年3月1日 0:00:00

/* Date 類的靜態函數 UTC 的參數也是和上面同樣的 2-7 個, 但 UTC 獲取的是個 number */
var n = Date.UTC(2009, 0); //這只是獲取了那個表示時間的毫秒數
alert(typeof n); //number

var d = new Date(n); //根據剛剛獲取的數、從新創建爲時間對象
alert(d.toUTCString()); //Thu, 1 Jan 2009 00:00:00 UTC

alert(d.toLocaleString()); //2009年1月1日 8:00:00

無參數創建的時間對象、和用全局函數 Date 獲取的時間的區別

var d1 = new Date(); //返回時間對象
var d2 = Date(); //返回時間字符串

alert(d1); //Fri Feb 27 13:20:58 UTC+0800 2009
alert(d2); //Fri Feb 27 13:20:58 2009

alert(d1.valueOf()); //1235712058340
alert(d2.valueOf()); //Fri Feb 27 13:20:58 2009

alert(typeof d1); //object
alert(typeof d2); //string

//明顯看出 d2 只是字符串, 它可使用 String 類的方法, 而不能使用 Date 類的方法.

使用字符串參數創建時間對象

var d;
d = new Date(‘Fri Mar 27 12:59:59 UTC+0800 2009’);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date(‘Fri Mar 27 12:59:59 2009’);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date(‘Fri Mar 27 2009’);
alert(d.toLocaleString()); //2009年3月27日 0:00:00

d = new Date(‘Mar 27 2009’);
alert(d.toLocaleString()); //2009年3月27日 0:00:00

/* 可以使用 Date() 返回的字符串 */
var ts = Date();
d = new Date(ts);
alert(d.toLocaleString()); //2009年3月27日 14:04:38

/* Date 類的靜態函數 parse 也是須要同樣的字符參數, 不過它返回的是個數字(那個毫秒數) */
var n;
n = Date.parse(‘Mar 27 2009’);
alert(n); //1238083200000
alert(typeof n); //number

d = new Date(n);

alert(d.toLocaleString()); //2009年3月27日 0:00:00

分別獲取和設置: 年、月、日、時、分、秒、毫秒, 其中 「星期幾」 可獲取但不能設置

var d = new Date(2009, 2, 27, 12, 58, 59, 999);
alert(d.toLocaleString()); //2009年3月27日 0:00:00
alert(d.getFullYear()); //2009
alert(d.getMonth()); //2 (從 0 起, 2 指 3 月)
alert(d.getDate()); //27
alert(d.getDay()); //5 (星期五)
alert(d.getHours()); //12
alert(d.getMinutes()); //58
alert(d.getSeconds()); //59
alert(d.getMilliseconds()); //999 (毫秒)

d.setFullYear(2010);
d.setMonth(1);
d.setDate(2);
d.setHours(3);
d.setMinutes(4);
d.setSeconds(5);
d.setMilliseconds(6);

alert(d.toLocaleString()); //2010年2月2日 3:04:05
alert(d.getFullYear()); //2010
alert(d.getMonth()); //1 (從 0 起, 1 指 2 月)
alert(d.getDate()); //2
alert(d.getDay()); //2 (星期二)
alert(d.getHours()); //3
alert(d.getMinutes()); //4
alert(d.getSeconds()); //5
alert(d.getMilliseconds()); //6 (毫秒)

/* 還有一個 setTime */ var d = new Date(); d.setTime(0); alert(d.toUTCString()); //Thu, 1 Jan 1970 00:00:00 UTC

相關文章
相關標籤/搜索