日期對象 Date瀏覽器
表示一個時間函數
Date
對象是 JavaScript 原生的時間庫性能
time = Date.now();
從格林威治標準時間1970年1月1日至今日此行代碼執行,的毫秒數。測試
time_start = Date.now(); // 獲取執行本行代碼的時間戳 // 被測 代碼塊 time_end = Date.now(); // 獲取執行本行代碼的時間戳 console.log(time_end-time_start+"毫秒");
Date(); // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)" Date(2000, 1, 1); // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)"
var d = new Date(); document.write(d); // 打印的是執行本行代碼時的本機時間
// 的實例,直接求值等同於調用方法
// Wed Sep 26 2018 20:55:25 GMT+0800 (中國標準時間)DatetoString
var dd = new Date("01/20/1996 12:00:00"); document.write(dd); // Sat Jan 20 1996 12:00:00 GMT+0800 (中國標準時間)
Date.parse()
方法解析的字符串,均可以看成參數
new Date('2013-2-15'); new Date('2013/2/15'); new Date('02/15/2013'); new Date('2013-FEB-15'); new Date('FEB, 15, 2013'); new Date('FEB 15, 2013'); new Date('Feberuary, 15, 2013'); new Date('Feberuary 15, 2013'); new Date('15 Feb 2013'); new Date('15, Feberuary, 2013'); // Fri Feb 15 2013 00:00:00 GMT+0800 (CST)
// 月:0表示一月,依次類推,11表示12月。
// 日:1到31。 日期設爲0
,就表明上個月的最後一天
// 小時:0到23。
// 分鐘:0到59。
// 秒:0到59
// 毫秒:0到999ui
// 除了日期的默認值爲,小時、分鐘、秒鐘和毫秒的默認值都是10
// 這些參數若是超出了正常範圍,會被自動折算。好比,若是月設爲15
,就折算爲下一年的4月
// 參數還可使用負數,表示扣去的時間15
Date
會將其解釋爲毫秒數
YYYY-MM-DDTHH:mm:ss.sssZ
格式,其中最後的Z
表示時區。NaN
Date.parse('Aug 9, 1995'); Date.parse('January 26, 2011 13:51:50'); Date.parse('Mon, 25 Dec 1995 13:30:00 GMT'); Date.parse('Mon, 25 Dec 1995 13:30:00 +0430'); Date.parse('2011-10-10'); Date.parse('2011-10-10T14:48:00');
Date.UTC()
方法的參數,會被解釋爲 UTC 時間(世界標準時間),Date()
構造函數的參數會被解釋爲當前時區的時間// 格式 Date.UTC(year, month[, date[, hrs[, min[, sec[, ms]]]]]); // 用法 Date.UTC(2011, 0, 1, 2, 3, 4, 567); // 1293847384567
getTime
方法
var d = new Date(); d.valueOf(); // 1362790014817 d.getTime(); // 1362790014817
若是直接讀取Date
實例,就至關於調用這個方法
toString()
方法。Date
實例求值,返回的是一個字符串,表明該實例對應的時間。
var today = new Date(); today // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)" // 等同於 today.toString() // "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)"
dd.getFullYear(); // 獲取 幾年 dd.getYear()距離1900的年數 dd.getMonth(); // 獲取 幾月, 0表示1月,11表示12月 dd.getDate(); // 獲取 幾日 dd.getDay(); // 獲取星期幾,星期日爲0,星期一爲1 dd.getHours(); // 獲取 時 0-23 dd.getMinutes(); // 獲取 分 0-59 dd.getSeconds(); // 獲取 秒 0-59 dd.getMilliSeconds(); // 獲取 毫秒 0-999 dd.getTime(); // 獲取 時間戳 實例距離1970年1月1日00:00:00的毫秒數,等同於方法
// 返回當前時間與 UTC 的時區差別,以分鐘表示,返回結果考慮到了夏令時因素valueOfgetTimezoneOffset()
var dd = new Date("01/20/1996 00:00:00"); var hs = dd.getTime(); console.log(hs); // 822067200000
var d = new Date('January 6, 2013'); d.getDate(); // 6 d.getMonth(); // 0 d.getYear(); // 113 d.getFullYear(); // 2013 d.getTimezoneOffset(); // -480 // 返回-480,即 UTC 時間減去當前時間,單位是分鐘。 // -480表示 UTC 比當前時間少480分鐘,即當前時區比 UTC 早8個小時
function leftDays() { var today = new Date(); var endYear = new Date(today.getFullYear(), 11, 31, 23, 59, 59, 999); var msPerDay = 24 * 60 * 60 * 1000; return Math.round( (endYear.getTime() - today.getTime()) / msPerDay); }
dd.getUTCFullYear(); // 獲取UTC 幾年 dd.getYear()距離1900的年數
dd.getUTCMonth(); // 獲取UTC 幾月, 0表示1月,11表示12月
dd.getUTCDate(); // 獲取UTC 幾日
dd.getUTCDay(); // 獲取UTC 星期幾,星期日爲0,星期一爲1
dd.getUTCHours(); // 獲取UTC 時 0-23
dd.getUTCMinutes(); // 獲取UTC 分 0-59
dd.getUTCSeconds(); // 獲取UTC 秒 0-59
dd.getUTCMilliSeconds(); // 獲取UTC 毫秒 0-999
setYear(year); 設置距離1900年的年數。 setFullYear(year [, month, date]); 設置四位年份。 setMonth(month [, date]); 設置月份(0-11)。 setDate(date); 設置實例對象對應的每月的幾號(1-31),返回改變後毫秒時間戳。 setHours(hour [, min, sec, ms]); 設置小時(0-23)。 setMinutes(min [, sec, ms]); 設置分鐘(0-59)。 setSeconds(sec [, ms]); 設置秒(0-59)。 setMilliseconds(); 設置毫秒(0-999)。 setTime(milliseconds); 設置毫秒時間戳。
沒有方法,由於星期幾是計算出來的,而不是設置的
setDay
setUTCDate()
spa
setUTCFullYear()
prototype
setUTCHours()
code
setUTCMilliseconds()
對象
setUTCMinutes()
blog
setUTCMonth()
setUTCSeconds()
var d = new Date(2013, 0, 1); d.toUTCString(); // "Mon, 31 Dec 2012 16:00:00 GMT"
// 返回的老是 UTC 時區的時間 var d = new Date(2013, 0, 1); d.toISOString(); // "2012-12-31T16:00:00.000Z"
toISOString
方法的返回結果徹底相同var d = new Date(2013, 0, 1); d.toTimeString(); // "00:00:00 GMT+0800 (CST)"
var d = new Date(2013, 0, 1); d.toLocaleString() // 中文版瀏覽器爲"2013年1月1日 上午12:00:00" // 英文版瀏覽器爲"1/1/2013 12:00:00 AM" d.toLocaleDateString() // 中文版瀏覽器爲"2013年1月1日" // 英文版瀏覽器爲"1/1/2013" d.toLocaleTimeString() // 中文版瀏覽器爲"上午12:00:00" // 英文版瀏覽器爲"12:00:00 AM"
這三個方法都有兩個可選的參數
var d = new Date(2013, 0, 1); d.toLocaleString('en-US'); // "1/1/2013, 12:00:00 AM" d.toLocaleString('zh-CN'); // "2013/1/1 上午12:00:00" d.toLocaleDateString('en-US'); // "1/1/2013" d.toLocaleDateString('zh-CN'); // "2013/1/1" d.toLocaleTimeString('en-US'); // "12:00:00 AM" d.toLocaleTimeString('zh-CN'); // "上午12:00:00"
var d = new Date(2013, 0, 1); // 時間格式 // 下面的設置是,星期和月份爲完整文字,年份和日期爲數字 d.toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); // "Tuesday, January 1, 2013" // 指定時區 d.toLocaleTimeString('en-US', { timeZone: 'UTC', timeZoneName: 'short' }); // "4:00:00 PM UTC" d.toLocaleTimeString('en-US', { timeZone: 'Asia/Shanghai', timeZoneName: 'long' }); // "12:00:00 AM China Standard Time" // 小時週期爲12仍是24 d.toLocaleTimeString('en-US', { hour12: false }); // "00:00:00" d.toLocaleTimeString('en-US', { hour12: true }); // "12:00:00 AM"