JavaScript 沒有日期資料型態,但是它有提供 Date() 物件,使用內件的日期物件與方法、可以取得與操作日期時間。日期物件有多種的方法來設定及取得。使用時有可能會因為瀏覽器或作業系統之不同,而顯示出不同的結果。因為它不是瀏覽器必然存在的物件,所以用 new 來產生它。不使用 new 不會產生物件實體;參數會被忽略一律傳回目前時間的字串。
日期中的日固定設為 0。例如 2014 的 2月份天數為。days 即是當月天數
var days = new Date(2014,2,0).getDate();
JavaScript 毫秒轉換成日期:Milliseconds to Date in JavaScript
var num = 1305856000000; var dd = new Date(num); document.write(dd.toString() + "<br />"); var months = "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月".split(","); var weekdays = "星期日,星期一,星期二,星期三,星期四,星期五,星期六".split(","); document.write( months[dd.getMonth()] ); document.write( weekdays[dd.getDay()] );
var dt1 = new Date(2015, 8, 1); var dt2 = new Date(2015, 8, 15); document.write((dt2 - dt1) / (1000 * 60 * 60 * 24)); //將毫秒計算成天數 86400000
new Date()
用於處理日期和時間、如果沒有指定參數,物件預設值為產生物件的日期與本地時間。而本地時間是指執行 JavaScript new Date() 的用戶電腦時間。
var dt = new Date(); document.write(dt);
var dt = (+new Date()); //Date.now() milliseconds 微秒數 document.write(dt);
指定參數,日期時間字串則傳回參數的日期。
document.write(new Date("2015/6/30 10:30:12"));
時, 分, 秒, 毫秒為選擇性的參數,沒有設定時以零取代,與上例比較月份是由零開始所以是 5。如果參數值超過預定值時,會取超過值並進位上一位時間值。
document.write(new Date(2015, 5, 30, 10, 30, 12));
將當時的日期指定到 dt 物件變數。
var dt = new Date();
document.write(dt.getYear()); //取得年份是錯誤的
結果:dt.getFullYear();
document.write(dt.getFullYear()); //採用四位數西歷年才正確
取得月份 : 一月 = 0, 二月 = 1, 三月 = 2, 四月 = 3, 五月 = 4, 六月 = 5, 七月 = 6...十月 = 9, 十一月 = 10, 十二月 = 11
document.write(dt.getMonth());
建立一個 month 陣列物件用來存放相對映於索引編號的月份名稱。
var dt = new Date(); var month = new Array(12); month[0] = "一月"; month[1] = "二月"; month[2] = "三月"; month[3] = "四月"; month[4] = "五月"; month[5] = "六月"; month[6] = "七月"; month[7] = "八月"; month[8] = "九月"; month[9] = "十月"; month[10] = "十一月"; month[11] = "十二月"; document.write("本月份 = " + month[dt.getMonth()]);
document.write(dt.getDate());
星期日 = 0, 星期一 = 1, 星期二 = 2, 星期三 = 3, 星期四 = 4,星期五 = 5, 星期六 = 6
document.write(dt.getDay());
getHours() 取得時數 0~23 台北標準時間+8
document.write(dt.getHours());
getUTCHours() 取得(國際標準時間)時數 0~23
document.write(dt.getUTCHours()); //UTC 表示 Coordinated Universal Time 國際標準時間
getMinutes() 取得分鐘 0~59
document.write(dt.getMinutes());
getSeconds() 取得秒數 0~59
document.write(dt.getSeconds());
getMilliseconds() 取得毫秒數 0~999
document.write(dt.getMilliseconds());
getTime() 取得時間 (由 1970年1月1日零時零分計起到目前時間) 單位:(毫秒)
document.write(dt.getTime());
getTimezoneOffset() 取得 GMT 減去本地時間的值 單位:(分鐘)
document.write(dt.getTimezoneOffset()); //數值會受日光節約時間之影響
setFullYear() 設置年份 (四位數字)
dt.setFullYear(2008) document.write(dt.getFullYear());
2008
setMonth() 設置月份 0~11
dt.setMonth(5) document.write(dt.getMonth());
5
setDate() 設置日(天) 1~31
dt.setDate(3) document.write(dt.getDate());
3
setHours() 設置時數 0~23
dt.setHours(10); document.write(dt.getHours());
10
setMinutes() 設置分鐘 0~59
dt.setMinutes(30); document.write(dt.getMinutes());
30
setSeconds() 設置秒數 0~59
dt.setSeconds(12); document.write(dt.getSeconds());
12
setMilliseconds() 設置毫秒數 0~999
dt.setMilliseconds(280); document.write(dt.getMilliseconds());
280