JavaScript Date 知識(shí)淺析
Date函數(shù)
- new Date()
Date 對(duì)象會(huì)自動(dòng)把當(dāng)前日期和時(shí)間保存為其初始值。
- date.getDate()
從 Date 對(duì)象返回一個(gè)月中的某一天 (1 ~ 31)。
- date.getDay()
從 Date 對(duì)象返回一周中的某一天 (0 ~ 6)。周日是0。
- date.getMonth()
從 Date 對(duì)象返回月份 (0 ~ 11)。
- date.getFullYear()
從 Date 對(duì)象以四位數(shù)字返回年份
- date.getHours()
返回 Date 對(duì)象的小時(shí) (0 ~ 23)。
- date.getMinutes()
返回 Date 對(duì)象的分鐘 (0 ~ 59)。
- date.getSeconds()
返回 Date 對(duì)象的秒數(shù) (0 ~ 59)。
- date.getMilliseconds()
返回 Date 對(duì)象的毫秒(0 ~ 999)。
- date.getTime()
返回 1970 年 1 月 1 日至今的毫秒數(shù)。
- date.getTimezoneOffset()
返回格林威治時(shí)間(GMT 或 UTC)和本地時(shí)間之間的時(shí)差,以分鐘為單位。返回之所以以分鐘計(jì),而不是以小時(shí)計(jì),原因是某些
國(guó)家所占有的時(shí)區(qū)甚至不到一個(gè)小時(shí)的間隔。
- date.getUTCDate()
根據(jù)世界時(shí)從 Date 對(duì)象返回月中的一天 (1 ~ 31)。
- date.getUTCDay()
根據(jù)世界時(shí)從 Date 對(duì)象返回周中的一天 (0 ~ 6)。周日是0。
- date.getUTCMonth()
根據(jù)世界時(shí)從 Date 對(duì)象返回月份 (0 ~ 11)。
- date.getUTCFullYear()
根據(jù)世界時(shí)從 Date 對(duì)象返回四位數(shù)的年份。
- date.getUTCHours()
根據(jù)世界時(shí)返回 Date 對(duì)象的小時(shí) (0 ~ 23)。
- date.getUTCMinutes()
根據(jù)世界時(shí)返回 Date 對(duì)象的分鐘 (0 ~ 59)。
- date.getUTCSeconds()
根據(jù)世界時(shí)返回 Date 對(duì)象的秒鐘 (0 ~ 59)。
- date.getUTCMilliseconds()
根據(jù)世界時(shí)返回 Date 對(duì)象的毫秒(0 ~ 999)。
- Date.parse(string)
返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)。
- date.setDate(int)
設(shè)置 Date 對(duì)象中月的某一天 (1 ~ 31)。返回調(diào)整過(guò)的日期的毫秒表示。
- date.setMonth(month[, day])
設(shè)置 Date 對(duì)象中月份 (0 ~ 11)。day參數(shù)可選,表示該月的某一天介于 1 ~ 31 之間。
- date.setFullYear(year[, month, day])
設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。month參數(shù)可選,表示月份介于 0 ~ 11 之間。day參數(shù)可選,表示該月的某一天介于 1 ~ 31 之間。
- date.setHours(hours[, minutes, seconds, milliseconds])
設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。minutes參數(shù)可選,表示分鐘數(shù)介于 0 ~ 59 之間。seconds參數(shù)可選,表示分鐘數(shù)介于 0
~ 59 之間。milliseconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 999 之間。
- date.setMinutes(minutes[, seconds, milliseconds])
設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。seconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 59 之間。milliseconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 999 之間。
- date.setSeconds(seconds[, milliseconds])
設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。milliseconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 999 之間。
- date.setMilliseconds(int)
設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。
- date.setTime(long)
設(shè)置的日期和時(shí)間據(jù) GMT 時(shí)間 1970 年 1 月 1 日午夜之間的毫秒數(shù)。以毫秒形式表示日期可以使它獨(dú)立于時(shí)區(qū)。
- date.setUTCDate(int)
根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中月份的一天 (1 ~ 31)。
- date.setUTCMonth(minutes[, seconds, milliseconds])
根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的月份 (0 ~ 11)。seconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 59 之間。milliseconds參數(shù)可選,表
示分鐘數(shù)介于 0 ~ 999 之間。
- date.setUTCFullYear(year[, month, day])
根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。month參數(shù)可選,表示月份介于 0 ~ 11 之間。day參數(shù)可選,表示該月的
某一天介于 1 ~ 31 之間。
- date.setUTCHours(hours[, minutes, seconds, milliseconds])
根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。minutes參數(shù)可選,表示分鐘數(shù)介于 0 ~ 59 之間。seconds參數(shù)可選,表示分
鐘數(shù)介于 0 ~ 59 之間。milliseconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 999 之間。
- date.setUTCMinutes(minutes[, seconds, milliseconds])
根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。seconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 59 之間。milliseconds參數(shù)可選,表
示分鐘數(shù)介于 0 ~ 999 之間。
- date.setUTCSeconds(seconds[, milliseconds])
根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。milliseconds參數(shù)可選,表示分鐘數(shù)介于 0 ~ 999 之間。
- date.setUTCMilliseconds(int)
根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。
- date.toString()
把 Date 對(duì)象轉(zhuǎn)換為字符串。
- date.toTimeString()
把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。
- date.toDateString()
把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。
- date.toUTCString()
根據(jù)世界時(shí),把 Date 對(duì)象轉(zhuǎn)換為字符串。
- date.toLocaleString()
根據(jù)本地時(shí)間格式,把 Date 對(duì)象轉(zhuǎn)換為字符串。
- date.toLocaleTimeString()
根據(jù)本地時(shí)間格式,把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。
- date.toLocaleDateString()
根據(jù)本地時(shí)間格式,把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。
- Date.UTC(year,month,day[,hour,minute,second,milliseconds])
根據(jù)世界時(shí)返回 1970 年 1 月 1 日 到指定日期的毫秒數(shù)。年月日必填,時(shí)分秒毫秒都是選填的。
- date.valueOf()
返回 Date 對(duì)象的原始值。與 Date.getTime 返回的值相等。即 1970 年 1 月 1 日至今的毫秒數(shù)。
<html> <head> <style type="text/css"> body { font-size:14px; } </style> </head> <body> <script type="text/javascript"> function write(name, value) { document.write(name + " = " + value + "<br/>"); } var date = new Date();//Date 對(duì)象會(huì)自動(dòng)把當(dāng)前日期和時(shí)間保存為其初始值。 write("new Date()", date); write("date.getDate()", date.getDate());//從 Date 對(duì)象返回一個(gè)月中的某一天 (1 ~ 31)。 write("date.getDay()", date.getDay());//從 Date 對(duì)象返回一周中的某一天 (0 ~ 6)。周日是0。 write("date.getMonth()", date.getMonth());//從 Date 對(duì)象返回月份 (0 ~ 11)。 write("date.getFullYear()", date.getFullYear());//從 Date 對(duì)象以四位數(shù)字返回年份。 write("date.getHours()", date.getHours());//返回 Date 對(duì)象的小時(shí) (0 ~ 23)。 write("date.getMinutes()", date.getMinutes());//返回 Date 對(duì)象的分鐘 (0 ~ 59)。 write("date.getSeconds()", date.getSeconds());//返回 Date 對(duì)象的秒數(shù) (0 ~ 59)。 write("date.getMilliseconds()", date.getMilliseconds());//返回 Date 對(duì)象的毫秒(0 ~ 999)。 write("date.getTime()", date.getTime());//返回 1970 年 1 月 1 日至今的毫秒數(shù)。 write("date.getTimezoneOffset()/60", date.getTimezoneOffset()/60);//返回格林威治時(shí)間(GMT 或 UTC)和本地時(shí)間之間的時(shí)差,以分鐘為單位。返回之所以以分鐘計(jì),而不是以小時(shí)計(jì),原因是某些國(guó)家所占有的時(shí)區(qū)甚至不到一個(gè)小時(shí)的間隔。 write("date.getUTCDate()", date.getUTCDate());//根據(jù)世界時(shí)從 Date 對(duì)象返回月中的一天 (1 ~ 31)。 write("date.getUTCDay()", date.getUTCDay());//根據(jù)世界時(shí)從 Date 對(duì)象返回周中的一天 (0 ~ 6)。周日是0。 write("date.getUTCMonth()", date.getUTCMonth());//根據(jù)世界時(shí)從 Date 對(duì)象返回月份 (0 ~ 11)。 write("date.getUTCFullYear()", date.getUTCFullYear());//根據(jù)世界時(shí)從 Date 對(duì)象返回四位數(shù)的年份。 write("date.getUTCHours()", date.getUTCHours());//根據(jù)世界時(shí)返回 Date 對(duì)象的小時(shí) (0 ~ 23)。 write("date.getUTCMinutes()", date.getUTCMinutes());//根據(jù)世界時(shí)返回 Date 對(duì)象的分鐘 (0 ~ 59)。 write("date.getUTCSeconds()", date.getUTCSeconds());//根據(jù)世界時(shí)返回 Date 對(duì)象的秒鐘 (0 ~ 59)。 write("date.getUTCMilliseconds()", date.getUTCMilliseconds());//根據(jù)世界時(shí)返回 Date 對(duì)象的毫秒(0 ~ 999)。 write("Date.parse(string)", Date.parse(date.toString()));//返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)。 write("date.setDate(int)", date.setDate(1));//設(shè)置 Date 對(duì)象中月的某一天 (1 ~ 31)。返回調(diào)整過(guò)的日期的毫秒表示。 write("date.setMonth(int)", date.setMonth(0));//設(shè)置 Date 對(duì)象中月份 (0 ~ 11)。 write("date.setFullYear(int)", date.setFullYear(2017));//設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。 write("date.setHours(int)", date.setHours(0));//設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。 write("date.setMinutes(int)", date.setMinutes(0));//設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。 write("date.setSeconds(int)", date.setSeconds(0));//設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。 write("date.setMilliseconds(int)", date.setMilliseconds(0));//設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。 write("date.setTime(long)", date.setTime(Date.UTC(2017,0,1)));//設(shè)置的日期和時(shí)間據(jù) GMT 時(shí)間 1970 年 1 月 1 日午夜之間的毫秒數(shù)。以毫秒形式表示日期可以使它獨(dú)立于時(shí)區(qū)。 write("date.setUTCDate(int)", date.setUTCDate(1));//根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中月份的一天 (1 ~ 31)。 write("date.setUTCMonth(int)", date.setUTCMonth(0));//根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的月份 (0 ~ 11)。 write("date.setUTCFullYear(int)", date.setUTCFullYear(2017));//根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。 write("date.setUTCHours(int)", date.setUTCHours(0));//根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。 write("date.setUTCMinutes(int)", date.setUTCMinutes(0));//根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。 write("date.setUTCSeconds(int)", date.setUTCSeconds(0));//根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。 write("date.setUTCMilliseconds(long)", date.setUTCMilliseconds(0));//根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。 write("date.toString()", date.toString());//把 Date 對(duì)象轉(zhuǎn)換為字符串。 write("date.toTimeString()", date.toTimeString());//把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。 write("date.toDateString()", date.toDateString());//把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。 write("date.toUTCString()", date.toUTCString());//根據(jù)世界時(shí),把 Date 對(duì)象轉(zhuǎn)換為字符串。 write("date.toLocaleString()", date.toLocaleString());//根據(jù)本地時(shí)間格式,把 Date 對(duì)象轉(zhuǎn)換為字符串。 write("date.toLocaleTimeString()", date.toLocaleTimeString());//根據(jù)本地時(shí)間格式,把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。 write("date.toLocaleDateString()", date.toLocaleDateString());//根據(jù)本地時(shí)間格式,把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。 write("Date.UTC(year,month,day[,hour,minute,second,milliseconds])", Date.UTC(2017,0,1,0,0,0));//根據(jù)世界時(shí)返回 1970 年 1 月 1 日 到指定日期的毫秒數(shù)。年月日必填,時(shí)分秒毫秒都是選填的。 write("date.valueOf()", date.valueOf());//返回 Date 對(duì)象的原始值。與 Date.getTime 返回的值相等。即 1970 年 1 月 1 日至今的毫秒數(shù)。 </script> </body> </html>
格式化Date
由于JS本身并不提供格式化日期的函數(shù)。因此必須借助prototype屬性來(lái)添加自定義的日期格式化方法。
<html> <head> <meta charset="UTF8" /> </head> <body> <script type="text/javascript"> /* 年(y)可以用 1-4 個(gè)占位符 月(M)、日(d)、時(shí)(H,24時(shí))、時(shí)(h,12時(shí))、分(m)、秒(s)、季度(q) 可以用 1-2 個(gè)占位符 毫秒(S)只能用 1 個(gè)占位符(是 1-3 位數(shù)字) AM或PM只能用 1 個(gè)占位符(是 2 位英文) 上午或下午(T)只能用 1 個(gè)占位符(是 2 位中文) 星期(E)可以用 1-3 個(gè)占位符 季度(q)只能用 1 個(gè)占位符(是 1 位數(shù)字) */ Date.prototype.format = function(fmt) { var map = { "M+" : this.getMonth() + 1, //月 "d+" : this.getDate(), //日 "H+" : this.getHours(), //24時(shí) /* 上午12時(shí)只代表當(dāng)天上午的12時(shí),下午的12時(shí)代表當(dāng)天下午的12時(shí), 0時(shí)代表第二天的開(kāi)始,即前面一天12時(shí)已過(guò)0時(shí)開(kāi)始計(jì)算新一天的時(shí)間, 雖然說(shuō)時(shí)間上跟前面那一天下午12時(shí)重合,但日期已經(jīng)發(fā)生更改,所以不能說(shuō)0時(shí)就是12時(shí) */ "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12,//12時(shí) "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "S" : this.getMilliseconds(), //毫秒 "t" : this.getHours() < 12 ? "AM" : "PM", "T" : this.getHours() < 12 ? "上午" : "下午", }; var week = { "0" : "日", "1" : "一", "2" : "二", "3" : "三", "4" : "四", "5" : "五", "6" : "六", } var quarter = { "0" : "一", "1" : "二", "2" : "三", "3" : "四", } if(/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } if(/(E+)/.test(fmt)) { var weekPreStr; switch(RegExp.$1.length) { case 1: weekPreStr = ""; break; case 2: weekPreStr = "周"; break; default: weekPreStr = "星期"; break; } fmt = fmt.replace(RegExp.$1, weekPreStr + week[this.getDay()]); } if(/(q)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, quarter[Math.floor(this.getMonth() / 3)]); } for(var key in map) { if(new RegExp("(" + key + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? map[key] : ("00" + map[key]).substr((map[key]+"").length)); } } return fmt; } function write(str) { document.write(str + "<br/>"); } var date = new Date(); write(date.toString()); write(date.toUTCString()); write(date.toLocaleString()); write(""); write(date.format("yy-M-d t h:m:s.S")); write(date.format("yyyy-MM-dd hh:mm:ss.S")); write(date.format("yyyy-MM-dd E HH:mm:ss")); write(date.format("yyyy-MM-dd EE hh:mm:ss")); write(date.format("yyyy-MM-dd EEE hh:mm:ss")); write(date.format("yyyy年MM月dd日 EEE hh:mm:ss 第q季度")); </script> </body> </html>
對(duì)Date設(shè)置超出范圍的參數(shù)
即使設(shè)置了超出范圍的參數(shù)也不會(huì)報(bào)錯(cuò),只會(huì)計(jì)算“最大合法值”與“超出值”相加得到的date。
<html> <body> <script type="text/javascript"> var date = new Date(); date.setFullYear(2016,12,32, 0, 0, 0); document.write(date); </script> </body> </html>
增減Date
<html> <body> <script type="text/javascript"> var date = new Date(); date.setFullYear(2017,0,1, 0, 0, 0); document.write("date = " + date + "<br/>"); date.setDate(date.getDate()+5); document.write("after date + 5, date = " + date + "<br/>"); date.setDate(date.getDate()-10); document.write("after date - 10, date = " + date + "<br/>"); </script> </body> </html>
比較Date
<html> <head> <meta charset="UTF8" /> </head> <body> <script type="text/javascript"> var date1 = new Date(); var date2 = new Date(); date1.setTime(Date.UTC(2017,0,1)); date2.setTime(Date.UTC(2016,11,31)); document.write("date1 = " + date1.toLocaleString() + "<br/>"); document.write("date2 = " + date2.toLocaleString() + "<br/>"); document.write("date1 - date2 = " + (date1 - date2) + "毫秒<br/>"); document.write("date1 - date2 = " + (date1 - date2)/1000/60/60 + "小時(shí)<br/>"); document.write("date1 > date2 = " + (date1 > date2) + "<br/>"); document.write("date1 < date2 = " + (date1 < date2) + "<br/>"); </script> </body> </html>
以上所述是小編給大家介紹的JavaScript Date 知識(shí)淺析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- Javascript中數(shù)組去重與拍平的方法示例
- 理解javascript中的Function.prototype.bind的方法
- JavaScript數(shù)組復(fù)制詳解
- Javascript基礎(chǔ)回顧之(三) js面向?qū)ο?/a>
- Javascript基礎(chǔ)回顧之(一) 類型
- JavaScript基礎(chǔ)之AJAX簡(jiǎn)單的小demo
- JavaScript實(shí)現(xiàn)時(shí)鐘滴答聲效果
- Javascript中 帶名 匿名 箭頭函數(shù)的重要區(qū)別(推薦)
- javascript判斷回文數(shù)詳解及實(shí)現(xiàn)代碼
- 淺談javascript中的 “ && ” 和 “ || ”
- Javascript中的 “&” 和 “|” 詳解
相關(guān)文章
js獲取最近一周一個(gè)月三個(gè)月時(shí)間的簡(jiǎn)單示例
時(shí)間的獲取和格式化是我們經(jīng)常遇到的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于利用js如何獲取最近一周一個(gè)月三個(gè)月時(shí)間的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12ES6中常見(jiàn)基本知識(shí)點(diǎn)的基本使用實(shí)例匯總
這篇文章主要給大家介紹了關(guān)于ES6中常見(jiàn)基本知識(shí)點(diǎn)的基本使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-04-04理解JavaScript的caller,callee,call,apply
文章挺好的,雖然我用的是jQuery,但感覺(jué)還是有些用的~~~2009-04-04打造通用的勻速運(yùn)動(dòng)框架(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇打造通用的勻速運(yùn)動(dòng)框架(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10javascript動(dòng)態(tài)設(shè)置樣式style實(shí)例分析
這篇文章主要介紹了javascript動(dòng)態(tài)設(shè)置樣式style的方法,實(shí)例分析了javascript操作style樣式的易錯(cuò)點(diǎn)和相關(guān)使用技巧,需要的朋友可以參考下2015-05-05自定義javascript驗(yàn)證框架示例【附源碼下載】
這篇文章主要介紹了自定義javascript驗(yàn)證框架,結(jié)合實(shí)例形式分析了javascript正則驗(yàn)證相關(guān)操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2019-05-05javascript實(shí)現(xiàn)的平方米、畝、公頃單位換算小程序
這篇文章主要介紹了javascript實(shí)現(xiàn)的平方米、畝、公頃單位換算小程序,此代碼通過(guò)URL傳參的方式使用,也可以根據(jù)自己的需求做些改動(dòng),需要的朋友可以參考下2014-08-08javascript動(dòng)態(tài)添加表格數(shù)據(jù)行(ASP后臺(tái)數(shù)據(jù)庫(kù)保存例子)
本文,我將以一個(gè)類似的例子來(lái)做一個(gè)前臺(tái)用Javascript動(dòng)態(tài)添加數(shù)據(jù)項(xiàng),后臺(tái)保存到數(shù)據(jù)庫(kù)的例子。2010-05-05