javascript日期操作詳解(腳本之家整理)
它是一個(gè)內(nèi)置對(duì)象——而不是其它對(duì)象的屬性,允許用戶執(zhí)行各種使用日期和時(shí)間的過(guò)程。
方法:分為得到時(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開(kāi)始的毫秒數(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() 改變?cè)路?
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í)、分、秒是可選的)以來(lái)的毫秒數(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í)間,其中很怪的問(wèn)題就是不能對(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()方法來(lái)做
3、由于針對(duì)月份,JS是從0開(kāi)始的,因此需要對(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)頁(yè)中使用,畢竟 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)文章
javascript 顯示當(dāng)前系統(tǒng)時(shí)間代碼
javascript 顯示當(dāng)前系統(tǒng)時(shí)間代碼,腳本之家以前發(fā)布過(guò)類型的文章,大家可以多參考下。2009-12-12
JavaScript 計(jì)算當(dāng)天是本年本月的第幾周
用來(lái)計(jì)算當(dāng)天是本年本月的第幾周的函數(shù)。2009-03-03
Js 獲取當(dāng)前日期時(shí)間及其它操作實(shí)現(xiàn)代碼
比較不錯(cuò)的js日期時(shí)間獲取函數(shù),比較全面,也比較容易拓展。2009-03-03
Js 時(shí)間間隔計(jì)算的函數(shù)(間隔天數(shù))
Js計(jì)算間隔天數(shù)的函數(shù)代碼,需要的朋友可以參考下。2011-11-11

