亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Javascript之Date對(duì)象詳解

 更新時(shí)間:2016年06月07日 11:34:11   作者:meaijojo  
本文主要介紹javascript中的Date對(duì)象的用法,講解的很詳細(xì),希望能給大家做一個(gè)參考。

Date對(duì)象即日期時(shí)間對(duì)象,它的主要功能是實(shí)現(xiàn)對(duì)日期時(shí)間的處理

1、創(chuàng)建Date對(duì)象

復(fù)制代碼 代碼如下:
var myDate = new Date();


復(fù)制代碼 代碼如下:
var myDate = new Date("July 21, 1983 01:15:00");//此種方法為自定義日期時(shí)間的方式,格式若不對(duì)的話(huà)為提示Invalid Date
Date對(duì)象的constructor屬性為:Date
document.write(myDate.constructor == Date);//輸出true

2、Date()方法,返回今天的日期和時(shí)間,格式是固定格式:

復(fù)制代碼 代碼如下:
document.write(Date());//Date()屬于Javascript的內(nèi)置對(duì)象,可以直接使用

輸出:
Fri Oct 26 2012 10:15:22 GMT+0800
格式: 星期 月份 日期 年份 時(shí)間 時(shí)區(qū)

另:假如自定義一個(gè)Date()對(duì)象,返回結(jié)果是一樣的

復(fù)制代碼 代碼如下:
var myDate = new Date();
document.write(myDate);

Fri Oct 26 2012 10:17:09 GMT+0800

注:兩者區(qū)別的地方在于:
前者只能顯示當(dāng)前的時(shí)間,而不能隨意定義時(shí)間
例,document.write(Date("July 21, 1983 01:15:00"));
它顯示的時(shí)間仍然是當(dāng)前的時(shí)間:Fri Oct 26 2012 10:15:22 GMT+0800

3、getDate()方法返回月份的某一天

月份中的某一天指的是使用本地時(shí)間,其返回值是 1 ~ 31 之間的一個(gè)整數(shù)。

復(fù)制代碼 代碼如下:
var myDate = new Date();
document.write(myDate.getDate());

輸出:26

復(fù)制代碼 代碼如下:
var myDate = new Date("July 21, 1983 01:15:00");
document.write(myDate.getDate());

輸出:21

4、getDay() 方法可返回表示星期的某一天的數(shù)字,它的取值范圍:0--6

復(fù)制代碼 代碼如下:
var myDate = new Date("July 21, 1983 01:15:00");
document.write(mtDate.getDay());

輸出4

為此我們可以采用Date對(duì)象和Array對(duì)象結(jié)合的方式將時(shí)間人性化顯示出來(lái),下面這種方法非常常用

復(fù)制代碼 代碼如下:
var weekday = new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
var myDate = new Date();
document.write(weekday[myDate.getDay()]);

5、getMonth(),返回月份字段,返回值是 0(一月) 到 11(十二月) 之間的一個(gè)整數(shù)

和getDay()類(lèi)似,我們也采用與Array對(duì)象相結(jié)合的方式

復(fù)制代碼 代碼如下:
var d=new Date();
var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";
document.write("The month is " + month[d.getMonth()]);

6、getFullYear() 方法可返回一個(gè)表示年份的 4 位數(shù)字。

返回值是一個(gè)四位數(shù),表示包括世紀(jì)值在內(nèi)的完整年份,而不是兩位數(shù)的縮寫(xiě)形式。

復(fù)制代碼 代碼如下:
var d = new Date();
document.write(d.getFullYear());

輸出:
2012

復(fù)制代碼 代碼如下:
var born = new Date("July 21, 1983 01:15:00");
document.write("I was born in " + born.getFullYear());

輸出:
1983

通過(guò)上述方法三種方法結(jié)合我們就可以得出比較人性化的時(shí)間顯示,例:

復(fù)制代碼 代碼如下:
var weekday = new Array(7);
weekday[0]="Sunday"
weekday[1]="Monday"
weekday[2]="Tuesday"
weekday[3]="Wednesday"
weekday[4]="Thursday"
weekday[5]="Friday"
weekday[6]="Saturday"
var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";
var myDate = new Date();
document.write("Date is "+myDate.getFullYear()+" "+month[myDate.getMonth()]+" "+myDate.getDate()+" "+weekday[myDate.getDay()]);

輸出為:
Date is 2012 October 19 Friday

7、getHours() 方法可返回時(shí)間的小時(shí)字段,返回值是 0 (午夜) 到 23 (晚上 11 點(diǎn))之間的一個(gè)整數(shù)。

復(fù)制代碼 代碼如下:
var born = new Date("July 21, 1983 01:15:00");
document.write(born.getHours());

輸出:1
注釋?zhuān)河?getHours() 返回的值是一個(gè)兩位的數(shù)字。
不過(guò)返回值不總是兩位的,如果該值小于 10,則僅返回一位數(shù)字。

8、getMinutes() 方法可返回時(shí)間的分鐘字段,返回值是 0 ~ 59 之間的一個(gè)整數(shù)。

與上述方法類(lèi)似,返回值不總是兩位的,如果該值小于 10,則僅返回一位數(shù)字。

9、getSeconds() 方法可返回時(shí)間的秒,返回值是 0 ~ 59 之間的一個(gè)整數(shù)。

與上述方法類(lèi)似,返回值不總是兩位的,如果該值小于 10,則僅返回一位數(shù)字。

10、getMilliseconds() 方法可返回時(shí)間的毫秒,毫秒字段,以本地時(shí)間顯示。返回值是 0 ~ 999 之間的一個(gè)整數(shù)。

注釋?zhuān)河?getMilliseconds() 返回的值是一個(gè)三位的數(shù)字。

不過(guò)返回值不總是三位的,如果該值小于 100,則僅返回兩位數(shù)字,如果該值小于 10,則僅返回一位數(shù)字。
下面我們有兩種方式將時(shí)間顯示出來(lái):
--->方式一

復(fù)制代碼 代碼如下:
var d = new Date();
document.write('Time is '+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());

輸出:Time is 10:52:2,缺點(diǎn)很明顯,在秒為<10的情況下只顯示了一位,其他的也類(lèi)似,因此推薦第二種顯示方式

--->方式二

復(fù)制代碼 代碼如下:
function checktime(time)
{
    if(time<10)
    {
      time = '0'+time;
    }
    return time;
}
var d = new Date();
document.write('Time is '+checktime(d.getHours())+":"+checktime(d.getMinutes())+":"+checktime(d.getSeconds()));

輸出:Time is 10:55:02

11、getTime() 方法可返回本地時(shí)間距 1970 年 1 月 1 日之間的毫秒數(shù),因此可以自定義Date("Jul 26 2000");

復(fù)制代碼 代碼如下:
var d = new Date();
document.write(d.getTime() + " milliseconds since 1970/01/01");

輸出:1350615452813 milliseconds since 1970/01/01

因此我們可以根據(jù)此數(shù)得到本地時(shí)間距離1970/01/01的年數(shù)

復(fù)制代碼 代碼如下:
var minutes = 1000*60;//一分鐘有60秒,一秒有60毫秒,下面依次類(lèi)推
var hours = minutes*60;
var days = hours*24;
var years = days*365;
var d = new Date();
var t = d.getTime();//獲得距離1970/01/01的毫秒數(shù)
var y = t/years;
document.write("It's been: " + y + " years since 1970/01/01!");

輸出:
It's been: 42.82773990521943 years since 1970/01/01!
注:此時(shí)的年份是一個(gè)小數(shù),可以將其換成整數(shù)(其實(shí)Javascript中沒(méi)有整數(shù)的區(qū)別)

最后一行修改為:

復(fù)制代碼 代碼如下:
document.write("It's been: " + parseInt(y) + " years since 1970/01/01!");

輸出:
It's been: 42 years since 1970/01/01!
parseInt(float);可以將浮點(diǎn)類(lèi)型轉(zhuǎn)換為整型

12、getTimezoneOffset() 方法可返回格林威治時(shí)間和本地時(shí)間之間的時(shí)差,以分鐘為單位。

注:
getTimezoneOffset() 方法返回的是本地時(shí)間與 GMT 時(shí)間或 UTC 時(shí)間之間相差的分鐘數(shù)。
實(shí)際上,該函數(shù)告訴我們運(yùn)行 JavaScript 代碼的時(shí)區(qū),以及指定的時(shí)間是否是夏令時(shí)。
返回之所以以分鐘計(jì),而不是以小時(shí)計(jì),原因是某些國(guó)家所占有的時(shí)區(qū)甚至不到一個(gè)小時(shí)的間隔。

復(fù)制代碼 代碼如下:
var d = new Date();
document.write(d.getTimezoneOffset());

輸出:
-480(東八區(qū),8*60)

因此可以根據(jù)此方法來(lái)判斷所在時(shí)區(qū)

復(fù)制代碼 代碼如下:
function checkzone(zone)
{
    if (zone==0)
    {
        return "零時(shí)區(qū)";
    }
    else if (zone>0)
    {
    return "西"+parseInt(zone/60)+"區(qū)";
    }
    else
    {
    return "東"+parseInt(Math.abs(zone/60))+"區(qū)";
    }
}
var d = new Date();
document.write(checkzone(d.getTimezoneOffset()));

其中Math.abs()為求絕對(duì)值
以上方法是自己原創(chuàng),因?yàn)榈乩韺W(xué)的不好,不知道對(duì)不對(duì),求指正

13、parse() 方法可解析一個(gè)日期時(shí)間字符串,并返回 1970/1/1 午夜距離該日期時(shí)間的毫秒數(shù)。

parse(str);str為字符串,是一個(gè)符合時(shí)間格式的字符串

復(fù)制代碼 代碼如下:
var minutes = 1000 * 60;
var hours = minutes * 60;
var days = hours * 24;
var years = days * 365;
var t = Date.parse("Jul 8, 2005");
var y = t/years;
document.write("It's been: " + parseInt(y) + " years from 1970/01/01");
document.write(" to 2005/07/08!");

輸出為:
It's been: 35 years from 1970/01/01 to 2005/07/08!

14、setDate() 方法用于設(shè)置一個(gè)月的某一天。

setDate(day),day必需。表示一個(gè)月中的一天的一個(gè)數(shù)值(1 ~ 31)。
注,此方法是在原先對(duì)象的基礎(chǔ)上進(jìn)行修改,會(huì)改變?cè)葦?shù)據(jù)的值
例:

復(fù)制代碼 代碼如下:
var d = new Date();
document.write(d.getDate()+"<br>");
d.setDate(31);
document.write(d.getDate());

輸出:
19
31

15、setMonth() 方法用于設(shè)置月份,與setDate()使用方法一直,也會(huì)改變?cè)璂ate對(duì)象

setMonth(month,day),目前可能不支持第二個(gè)參數(shù),month必需。一個(gè)表示月份的數(shù)值,該值介于 0(一月) ~ 11(十二月) 之間。
假如支持day參數(shù)的話(huà),day代表的是月中某一天的數(shù)值,介于 1 ~ 31 之間。用本地時(shí)間表示。

復(fù)制代碼 代碼如下:
var d = new Date();
document.write(d.getMonth()+" "+d.getDate()+"<br>");
d.setMonth(11,26);
document.write(d.getMonth()+" "+d.getDate());

輸出為:
9 19
11 26

16、setFullYear() 方法用于設(shè)置年份。

setFullYear(year,month,day);
year 必需。表示年份的四位整數(shù)。用本地時(shí)間表示。
month 可選。表示月份的數(shù)值,介于 0 ~ 11 之間。用本地時(shí)間表示。
day 可選。表示月中某一天的數(shù)值,介于 1 ~ 31 之間。用本地時(shí)間表示。

復(fù)制代碼 代碼如下:
var d = new Date();
d.setFullYear(1992,10,3);
document.write(d);

輸出為:
Tue Nov 03 1992 11:31:58 GMT+0800

17、setHours() 方法用于設(shè)置指定的時(shí)間的小時(shí)字段。

setHours(hour,min,sec,millisec);
hour 必需。表示小時(shí)的數(shù)值,介于 0(午夜) ~ 23(晚上11點(diǎn)) 之間,以本地時(shí)間計(jì)(下同)。
min 可選。表示分鐘的數(shù)值,介于 0 ~ 59 之間。在 EMCAScript 標(biāo)準(zhǔn)化之前,不支持該參數(shù)。
sec 可選。表示秒的數(shù)值,介于 0 ~ 59 之間。在 EMCAScript 標(biāo)準(zhǔn)化之前,不支持該參數(shù)。
millisec 可選。表示毫秒的數(shù)值,介于 0 ~ 999之間。在 EMCAScript 標(biāo)準(zhǔn)化之前,不支持該參數(shù)。

復(fù)制代碼 代碼如下:
var d = new Date()
d.setHours(15,35,1)
document.write(d)

輸出為:
Fri Oct 19 15:35:01 UTC+0800 2012

18、setMinutes() 方法用于設(shè)置指定時(shí)間的分鐘字段。

setMinutes(min,sec,millisec)
min 必需。表示分鐘的數(shù)值,介于 0 ~ 59 之間,以本地時(shí)間計(jì)(下同)。
sec 可選。表示秒的數(shù)值,介于 0 ~ 59 之間。在 EMCAScript 標(biāo)準(zhǔn)化之前,不支持該參數(shù)。
millisec 可選。表示毫秒的數(shù)值,介于 0 ~ 999 之間。在 EMCAScript 標(biāo)準(zhǔn)化之前,不支持該參數(shù)。

復(fù)制代碼 代碼如下:
var d = new Date()
d.setMinutes(1)
document.write(d)

輸出為:
Fri Oct 19 11:01:11 UTC+0800 2012

19、setSeconds() 方法用于設(shè)置指定時(shí)間的秒字段。

setSeconds(sec,millisec)
sec 必需。表示秒的數(shù)值,該值是介于 0 ~ 59 之間的整數(shù)。
millisec 可選。表示毫秒的數(shù)值,介于 0 ~ 999 之間。在 EMCAScript 標(biāo)準(zhǔn)化之前,不支持該參數(shù)。

20、setMilliseconds() 方法用于設(shè)置指定時(shí)間的毫秒字段。

setMilliseconds(millisec)
millisec 必需。用于設(shè)置 dateObject 毫秒字段,該參數(shù)是介于 0 ~ 999 之間的整數(shù)。

21、setTime() 方法以毫秒設(shè)置 Date 對(duì)象。

此方法是比較常用的方法,在數(shù)據(jù)庫(kù)中存放Date.getTime()毫秒數(shù),
在返回時(shí)如何顯示出來(lái)呢,就是用此方法
setTime(millisec)
millisec 必需。要設(shè)置的日期和時(shí)間據(jù) GMT 時(shí)間 1997 年 1 月 1 日午夜之間的毫秒數(shù)。
這種類(lèi)型的毫秒值可以傳遞給 Date() 構(gòu)造函數(shù),可以通過(guò)調(diào)用 Date.UTC() 和 Date.parse() 方法獲得該值。以毫秒形式表示日期可以使它獨(dú)立于時(shí)區(qū)。

復(fù)制代碼 代碼如下:
var d = new Date();
d.setTime(77771564221);
document.write(d);

輸出為:
Mon Jun 19 1972 11:12:44 GMT+0800
此種方法就可以根據(jù)數(shù)據(jù)庫(kù)中存放的long數(shù)據(jù)類(lèi)型將其轉(zhuǎn)換為了時(shí)間對(duì)象

22、toTimeString() 方法可把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串,并返回結(jié)果。

復(fù)制代碼 代碼如下:
var d = new Date();
document.write(d.toTimeString());

輸出:
11:50:57 GMT+0800

23、toDateString() 方法可把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串,并返回結(jié)果。

復(fù)制代碼 代碼如下:
var d = new Date();
document.write(d.toDateString());

輸出:
Fri Oct 19 2012

24、還有很多設(shè)計(jì)UTC時(shí)區(qū)的一些方法,此處沒(méi)有列出,僅僅是對(duì)一般的通用較多的方法匯總了下

查看更多JavaScript的語(yǔ)法,大家可以關(guān)注:《JavaScript 參考教程》、《JavaScript代碼風(fēng)格指南》,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論