它是一個內置對象——而不是其它對象的屬性,允許用戶執行各種使用日期和時間的過程。
方法:分為得到時間方法、設置時間方法和轉換時間方法
得到時間方法:
getDate() 查看Date對象並返回日期
getDay() 返回星期幾
getHours() 返回小時數
getMinutes() 返回分鐘數
getMonth() 返回月份值
getSeconds() 返回秒數
getTime() 返回完整的時間
getYear() 返回年份
js中的日期時間函數具體使用注意事項: 月份獲取的時候會-1. 例如當前是12月份,獲取的數字就是11
var date = new Date();
date.getYear(); //獲取年份(2位)
date.getFullYear(); //獲取完整的年份(4位,1970-)
date.getMonth(); //獲取月份(0-11,0代表1月,所以在顯示當前時間的時候需要date.getMonth() + 1)
date.getDate(); //獲取日(1-31)
date.getDay(); //獲取星期?(0-6,0代表星期天)
date.getTime(); //獲取時間(從1970.1.1開始的毫秒數)
date.getHours(); //獲取小時數(0-23)
date.getMinutes(); //獲取分鐘數(0-59)
date.getSeconds(); //獲取秒數(0-59)
date.getMilliseconds(); //獲取毫秒數(0-999)
date.toLocaleString(); //獲取日期與時間
設置時間方法:
setDate() 改變Date對象的日期
setHours() 改變小時數
setMinutes() 改變分鐘數
setMonth() 改變月份
setSeconds() 改變秒數
setTime() 改變完整的時間
setYear() 改變年份
轉換時間方法:
toGMTString() 把Date對象的日期(一個數值)轉變成一個GMT時間字符串,返回類似下面的值:Weds,15 June l997 14:02:02 GMT(精確的格式依賴於計算機上所運行的操作系統而變)
toLocaleString() 把Date對象的日期(一個數值)轉變成一個字符串,使用所在計算機上配置使用的特定日期格式
UTC() 使用Date UTC(年、月、日、時、分、秒),以自從1970年1月1日00:00:00(其中時、分、秒是可選的)以來的毫秒數的形式返回日期
幾個需要注意的地方:
最重要的一點就是考慮到多浏覽器的兼容性。需要按如下格式獲取日期比較好
var timestart = '2015-09-05'; var timeend = '2015-09-06'; var time1 = (timestart+' 00:00:00').toString(); var time2 = (timeend+' 23:59:59').toString(); timestart = new Date(Date.parse(time1.replace(/-/g,"/"))).getTime(); timeend = new Date(Date.parse(time2.replace(/-/g,"/"))).getTime();
小編為大家提供一個剛寫的,在某一個時間段才顯示的廣告代碼
<script type="text/javascript"> var timestart = '2015-09-05'; var timeend = '2015-09-06'; var time1 = (timestart+' 16:00:00').toString(); var time2 = (timeend+' 16:00:00').toString(); timestart = new Date(Date.parse(time1.replace(/-/g,"/"))).getTime(); timeend = new Date(Date.parse(time2.replace(/-/g,"/"))).getTime(); var nowtime=new Date().getTime(); if (nowtime>timestart && nowtime<timeend) { document.write("廣告"); } </script>
1、得到日期和年和設置日期和年時間,其中很怪的問題就是不能對月份進行設置(比較的怪):
<script language="javascript"> d = new Date(); alert(d.toLocaleString()); d.setDate(25); alert(d.toLocaleString()); d.setYear(2000); alert(d.toLocaleString()); </script>
2、獲得年的時候最好用getFullYear()方法來做
3、由於針對月份,JS是從0開始的,因此需要對月份進行操作時要加1
下面是幾個關於時間的經典而且經常會用到的例子,希望對大家會有提高的。謝謝繼續關注該帖子。。。
1、將2005-8-5轉換成2005-08-05格式
<script language="javascript"> var strDate = '2005-8-5'; window.alert(strDate.replace(/\b(\w)\b/g, '0$1')); </script>
2、得到間隔天數
<script type="text/javascript"> <!-- alert("間隔天數為:"+(new Date('2005/8/15')-new Date('2003/9/18'))/1000/60/60/24+"天") //--> </script>
3、得到間隔時間
<script> var d1=new Date("2004/09/16 20:08:00"); var d2=new Date("2004/09/16 10:18:03"); var d3=d1-d2; var h=Math.floor(d3/3600000); var m=Math.floor((d3-h*3600000)/60000); var s=(d3-h*3600000-m*60000)/1000; alert("相差"+h+"小時"+m+"分"+s+"秒"); </script>
4、得到今天的日期
<script language="javascript"> d = new Date(); alert(d.getFullYear()+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日"); </script>
6、數字日期轉漢字
<html> <head> <title> New Document </title> </head> <body> <script language=javascript> Date.prototype.getRead = function() { var values = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九"); var returnValue, temp; returnValue = this.getYear()+"年"; temp = (this.getMonth()+1)+"月"+this.getDate()+"日"; temp = temp.replace(/(\d)(\d)/g,"$1十$2").replace(/1十/g,"十").replace(/十0/g,"十"); returnValue += temp; returnValue = returnValue.replace(/\d/g, function(sts){return values[parseInt(sts)]}); return returnValue; } var t=new Date(); document.write(t.getRead()); </script> </body> </html>
7、得到前N天或後N天的日期
方法一:
<script type="text/javascript"> function showdate(n) { var uom = new Date(new Date()-0+n*86400000); uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate(); return uom; } window.alert("今天是:"+showdate(0)); window.alert("昨天是:"+showdate(-1)); window.alert("明天是:"+showdate(1)); window.alert("10天前是:"+showdate(-10)); window.alert("5天後是:"+showdate(5)); </script>
方法二:
<script type="text/javascript"> function showdate(n) { var uom = new Date(); uom.setDate(uom.getDate()+n); uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate(); return uom; } window.alert("今天是:"+showdate(0)); window.alert("昨天是:"+showdate(-1)); window.alert("明天是:"+showdate(1)); window.alert("10天前是:"+showdate(-10)); window.alert("5天後是:"+showdate(5)); </script>
方法三(不好意思,這個用vsscript做的,僅作為學習使用,不建議網頁中使用,畢竟 IE only):
<script language="vbscript"> function showdate(n) showdate=dateadd("d",date(),n) end function msgbox "今天是:"&showdate(0) msgbox "昨天是:"&showdate(-1) msgbox "明天是:"&showdate(1) msgbox "十天前是:"&showdate(-10) msgbox "五天後是:"&showdate(5) </script>
方法四:
<script language="Javascript"> Date.prototype.getDays=function(){ var _newDate=new Date(); _newDate.setMonth(_newDate.getMonth()+1); _newDate.setDate(0); $_days=_newDate.getDate(); delete _newDate; return $_days; } function showdate(n) { var uom = new Date(); uom.setDate(uom.getDate()+n); uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate()+"\n星期"+('天一二三四五六'.charAt(uom.getDay()))+"\n本月有"+ uom.getDays()+"天"; return uom; } window.alert("今天是:"+showdate(0)); window.alert("昨天是:"+showdate(-1)); window.alert("明天是:"+showdate(1)); window.alert("10天前是:"+showdate(-10)); window.alert("5天後是:"+showdate(5)); </script>