javascript日期操作詳解(腳本之家整理)
它是一個(gè)內(nèi)置對(duì)象——而不是其它對(duì)象的屬性,允許用戶執(zhí)行各種使用日期和時(shí)間的過程。
方法:分為得到時(shí)間方法、設(shè)置時(shí)間方法和轉(zhuǎn)換時(shí)間方法
得到時(shí)間方法:
getDate() 查看Date對(duì)象并返回日期
getDay() 返回星期幾
getHours() 返回小時(shí)數(shù)
getMinutes() 返回分鐘數(shù)
getMonth() 返回月份值
getSeconds() 返回秒數(shù)
getTime() 返回完整的時(shí)間
getYear() 返回年份
js中的日期時(shí)間函數(shù)具體使用注意事項(xiàng): 月份獲取的時(shí)候會(huì)-1. 例如當(dāng)前是12月份,獲取的數(shù)字就是11
var date = new Date();
date.getYear(); //獲取年份(2位)
date.getFullYear(); //獲取完整的年份(4位,1970-)
date.getMonth(); //獲取月份(0-11,0代表1月,所以在顯示當(dāng)前時(shí)間的時(shí)候需要date.getMonth() + 1)
date.getDate(); //獲取日(1-31)
date.getDay(); //獲取星期?(0-6,0代表星期天)
date.getTime(); //獲取時(shí)間(從1970.1.1開始的毫秒數(shù))
date.getHours(); //獲取小時(shí)數(shù)(0-23)
date.getMinutes(); //獲取分鐘數(shù)(0-59)
date.getSeconds(); //獲取秒數(shù)(0-59)
date.getMilliseconds(); //獲取毫秒數(shù)(0-999)
date.toLocaleString(); //獲取日期與時(shí)間
設(shè)置時(shí)間方法:
setDate() 改變Date對(duì)象的日期
setHours() 改變小時(shí)數(shù)
setMinutes() 改變分鐘數(shù)
setMonth() 改變月份
setSeconds() 改變秒數(shù)
setTime() 改變完整的時(shí)間
setYear() 改變年份
轉(zhuǎn)換時(shí)間方法:
toGMTString() 把Date對(duì)象的日期(一個(gè)數(shù)值)轉(zhuǎn)變成一個(gè)GMT時(shí)間字符串,返回類似下面的值:Weds,15 June l997 14:02:02 GMT(精確的格式依賴于計(jì)算機(jī)上所運(yùn)行的操作系統(tǒng)而變)
toLocaleString() 把Date對(duì)象的日期(一個(gè)數(shù)值)轉(zhuǎn)變成一個(gè)字符串,使用所在計(jì)算機(jī)上配置使用的特定日期格式
UTC() 使用Date UTC(年、月、日、時(shí)、分、秒),以自從1970年1月1日00:00:00(其中時(shí)、分、秒是可選的)以來的毫秒數(shù)的形式返回日期
幾個(gè)需要注意的地方:
最重要的一點(diǎn)就是考慮到多瀏覽器的兼容性。需要按如下格式獲取日期比較好
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();
腳本之家小編為大家提供一個(gè)剛寫的,在某一個(gè)時(shí)間段才顯示的廣告代碼
<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、得到日期和年和設(shè)置日期和年時(shí)間,其中很怪的問題就是不能對(duì)月份進(jìn)行設(shè)置(比較的怪):
<script language="javascript"> d = new Date(); alert(d.toLocaleString()); d.setDate(25); alert(d.toLocaleString()); d.setYear(2000); alert(d.toLocaleString()); </script>
2、獲得年的時(shí)候最好用getFullYear()方法來做
3、由于針對(duì)月份,JS是從0開始的,因此需要對(duì)月份進(jìn)行操作時(shí)要加1
下面是幾個(gè)關(guān)于時(shí)間的經(jīng)典而且經(jīng)常會(huì)用到的例子,希望對(duì)大家會(huì)有提高的。謝謝繼續(xù)關(guān)注該帖子。。。
1、將2005-8-5轉(zhuǎn)換成2005-08-05格式
<script language="javascript"> var strDate = '2005-8-5'; window.alert(strDate.replace(/\b(\w)\b/g, '0$1')); </script>
2、得到間隔天數(shù)
<script type="text/javascript"> <!-- alert("間隔天數(shù)為:"+(new Date('2005/8/15')-new Date('2003/9/18'))/1000/60/60/24+"天") //--> </script>
3、得到間隔時(shí)間
<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+"小時(shí)"+m+"分"+s+"秒"); </script>
4、得到今天的日期
<script language="javascript"> d = new Date(); alert(d.getFullYear()+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日"); </script>
6、數(shù)字日期轉(zhuǎn)漢字
<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>
方法三(不好意思,這個(gè)用vsscript做的,僅作為學(xué)習(xí)使用,不建議網(wǎng)頁中使用,畢竟 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>
相關(guān)文章
js定時(shí)顯示廣告的實(shí)現(xiàn)代碼[已測]
有時(shí)候需要定時(shí)顯示指定的廣告,那么就可以參考下面的代碼了2012-02-02Javascript日期對(duì)象的dateAdd與dateDiff方法
先貼出我寫的javascript代碼,后面有使用參考。2008-11-11javascript時(shí)區(qū)函數(shù)介紹
在js中的時(shí)區(qū)我們以般講的是關(guān)于格林威治時(shí)間和本地時(shí)間之間的時(shí)差,以分鐘為單位,這和php,asp沒什么區(qū)別下面我們結(jié)合date()函數(shù)來介紹一下js時(shí)區(qū)的相關(guān)問題2012-09-09javascript實(shí)現(xiàn)的距離現(xiàn)在多長時(shí)間后的一個(gè)格式化的日期
距離現(xiàn)在多長時(shí)間后的一個(gè)格式化的日期,大家可以看看。2009-10-10JavaScript自定義DateDiff函數(shù)(兼容所有瀏覽器)
JavaScript自定義DateDiff函數(shù)兼容所有瀏覽器,DateDiff用來返回兩個(gè)日期的時(shí)間間隔2012-03-03Javascript 日期對(duì)象Date擴(kuò)展方法
Date對(duì)象擴(kuò)展,包括常用中文日期格式解析、加減操作、日期差、周操作和季操作。2009-05-05