日期和時間-JavaScript入門基礎(010)
技術標籤:JavaScriptjavascriptjqueryhtml
Date物件用於處理日期和時間。但是DOM裡並沒有現成的Date物件,而是需要我們自己在需要時建立Data物件。
語法:
varmyDate=newDate();
變數myDate就是一個Date物件。
var year = myDate.getFullYear(); //四位年份,2020
varmonth=myDate.getMonth();//0~11,0表示1月份
var date = myDate.getDate(); //日期,1-31
var day = myDate.getDay(); //星期幾,0~6
varhours=myDate.getHours();//時,0~23
varminutes=myDate.getMinutes();//分,0~59
varseconds=myDate.getSeconds(); //秒,0~59
建立具有指定日期和時間的Date物件:
語法:
var myDate = new Date(milliseconds); //毫秒
varmyDate=newDate(dateString); // 日期字串
varmyDate=newDate(year,month,day,hours,minutes,seconds,milliseconds); //
比如:
vard2=newDate(2020,12,22);//2020年12月22日
vard3=newDate(2020,12,22,10,58,0);//2020年12月22日10:58:00
設定和編輯日期與時間:
var myDate = new Date();
myDate.setDate(15); //
這段程式碼,先建立了myDate物件,接著就把日子換成了15日。
varmyDate = new Date();
myDate.setDate(myDate.getDate() + 33);
這段程式碼,是把當天日期往後推遲33天的日期。
Math物件:
與Date物件不同,Math物件不需要建立就可以使用。
方法 | 描述 |
ceil(n) | 返回n向上取證到最近的整數 |
floor(n) | 返回n向下取整到最近的整數 |
max(a,b,c) | 返回最大值 |
min(a,b,c) | 返回最小值 |
round(n) | 返回n四捨五入到最近的整數 |
random() | 返回一個0到1之間的隨機數 |
取整:
var num1 = 12.55;
var num2 = 12.45;
Math.floor(num1); // 12
Math.ceil(num1); // 13
Math.round(num1); // 13
Math.round(num2); // 12
floor是向下取整,ceil是向上取整,round是四捨五入。
最大值和最小值:
var value1 = 23;
var value2 = 27;
var value3 = 31;
var value4 = 19;
Math.max(value1,value2,value3,value4); // 31
Math.min(value,value2,value3); //23
生成隨機數:
用Math.random()方法可以生成0和1之間的一個隨機數。更為常見的情況是,我需要需要獲得0到100之間的隨機數。
我們可以把Math.random()方法包含在一個函式內,在給它一個引數,用於放大倍數。
function myRand(range) {
returnMath.round(Math.random() * range);
}
呼叫時:
myRand(100);
強調一點,在程式程式碼中,可以直接使用Math物件的方法,不要誤認為Math的方法是其他建立物件的方法。
比如:
varnum1 = 25.77;
num1.floor(); // error
正確的用法是:
Math.floor(num1); // 25
數學常數:
常數 | 描述 |
E | 自然常數e,約為2.718 |
LN2 | 2的自然對數,約為0.693 |
LN10 | 10的自然對數,約為2.302 |
LOG2E | 以2為底e的對數,約為1.442 |
LOG10E | 以10為底e的對數,約為0.434 |
PI | 圓周率,約為3.14159 |
SQRTI_2 | 2的平方根的倒數,約為0.707 |
SQRT2 | 2的平方根,約為1.414 |
我們可以在數學計算中,直接使用這些常量。
關鍵字with:
任何物件都可以使用關鍵字width,但用Math物件做示範最合適。可以減少輸入量。
示例:
with(Math)
{
varmyRand=random();
varbiggest=max(3,4,5);
varheight=round(76.35);
}
可以省去重複輸入Math。
我們看一個完整的時間的示例程式碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>當前日期和時間</title>
<style type="text/css">
p {
font: 14px normal Arial,Verdana,helvetica;
}
</style>
<script>
function write(name,value="") {
document.write(name + " : " +value);
document.write("<br>");
}
var now = new Date();
write("當前時間是");
write("year",now.getFullYear());
write("month",now.getMonth());
write("date",now.getDate());
write("hours",now.getHours());
write("minutes",now.getMinutes());
write("seconds",now.getSeconds());
</script>
</head>
<body>
<script>
tellTime();
</script>
</body>
</html>
上面的程式碼會把你電腦的當前時間,顯示在網頁上的。如果需要看到時間的變化,可以使用location物件的reload方法。
<input type="button" value="重新整理" onclick="javascript:location.reload();">
另外插一句,Date物件中的getFullYear和setFullYear ,與getYear和setYear的區別。
getYear和setYaer使用的是兩位數字表示年份,而getFullYear和setFullyear是使用的4位數字表示年份的。考慮到千禧年的問題,目前getYear和setYear已經廢棄,不再使用了。