Javascript中Date对象的使用
JavaScript 沒有一個基本的日期數據類型,所以我們只能顯式地創建Date對象。我們創建新的Date對象和創建String對象的方式是一樣的,使用關鍵字new和Date構造函數。下面這行創建了一個包含當前日期和實踐的Date對象:
var todaysDate = new Date();
為了創建一個存儲一個特定日期或時間的Date對象,我們可以簡單地把日期或日期與時間放到括號的內面:
var newMillennium = new Date( "1 Jan 2000 10:24:00" );
不同的國家使用不同的順序來描述日期。舉個例子,美國指定的日期格式是MM/DD/YY, 而歐洲的日期格式是DD/MM/YY, 在中國它們的格式是YY/MM/DD。如果你使用簡寫的名字指定月份,那么你可以以任意的順序使用:
var someDate = new Date( "10 Jan 2002" );
var someDate = new Date( "Jan 10 2002" );
var someDate = new Date( "2002 10 Jan" );
實際上,Date對象可以擁有許多參數:
var someDate = new Date( aYear, aMonth, aDate,?
anHour, aMinute, aSecond, aMillisecond )
要使用這些參數,你首先需要指定年份和月份,然后使用你需要的參數,可是你不得不按順序逐個使用且不能在它們之間選擇。舉例來說,你可以指定年份,月份,日期和小時:
var someDate = new Date( 2003, 9, 22, 17 );
可是你不能指定年份,月份,然后指定小時:
var someDate = new Date( 2003, 9, , 17 );
? ????????????????????????????????????????????????????????????????????????????????
?
■注解: 盡管我們通常認為九月(September)是第9個月份,但是JavaScript從0(一月)開始計算月份,因此月份8表示九月。
? ????????????????????????????????????????????????????????????????????????????????
?
2.1.1.1.1.? 使用Date對象
Date對象擁有許多的方法,你可以用來獲取或設置一個日期或時間。你可以使用本地時間 (你的電腦所在時區的時間) 或者UTC (全球標準時間,也叫格林威治標準時間)。 雖然這個可能非常有用,你要意識到當你處理Date的時候,許多人們并沒有正確的設置他們的時區。讓我們看一個例子,它展示了其中的一些方法:
<html>
<body>
<script type="text/javascript">
// Create a new date object
var someDate = new Date( "31 Jan 2003 11:59" );
// Retrieve the first four values using the
// appropriate get methods
document.write( "Minutes = " + someDate.getMinutes() + "<br>" );
document.write( "Year = " + someDate.getFullYear() + "<br>" );
document.write( "Month = " + someDate.getMonth() + "<br>" );
document.write( "Date = " + someDate.getDate() + "<br>" );
// Set the minutes to 34
someDate.setMinutes( 34 );
document.write( "Minutes = " + someDate.getMinutes() + "<br>" );
// Reset the date
someDate.setDate( 32 );
document.write( "Date = " + someDate.getDate() + "<br>" );
document.write( "Month = " + someDate.getMonth() + "<br>" );
</script>
</body>
</html>
下面是你會得到的結果:
??????????????????????????????????????? ?????????????????????????????????????????
Minutes = 59
Year = 2003
Month = 0
Date = 31
Minutes = 34
Date = 1
Month = 1
????????????????????????????????????????????????????????????????????????????????
?
代碼的這一行第一眼看起來可能有點違反常規:
someDate.setDate( 32 );
JavaScript 知道在一月份中沒有32天,因此解釋器沒有試著把日期設置為1月32日,而是從1月1日起數了32天,所以給我們返回了2月1日。
這是個非常方便的特性,如果你需要在一個日期上增加一些天數。通常如果我們想在一個日期上增加許多天,我們不得不考慮在不同的月份中的天數,還有是否是一個閏年,但是如果我們使用JavaScript的日期來處理則非常的容易:
<html>
<body>
<script type="text/javascript">
// Ask the user to enter a date string
var originalDate = prompt("Enter a date (Day, Name of?
the Month, Year) ", "31 Dec 2003" );
// Overwrite the originalDate variable with a new Date
// object
var originalDate = new Date( originalDate );
// Ask the user to enter the number of days to be
// added, and convert to number
var addDays = Number( prompt( "Enter number of days?
to be added", "1" ) )
// Set a new value for originalDate of originalDate
// plus the days to be added
originalDate.setDate( originalDate.getDate( ) + addDays )
// Write out the date held by the originalDate
// object using the toString( ) method
document.write( originalDate.toString( ) )
</script>
</body>
</html>
如果你在提示的時候輸入31 Dec 2003(2003年12月31日),還有1作為需要增加的天數,然后你會得到的結果是Thu Jan 1 00:00:00 UTC+0800 2004(星期四,2004年1月1日,零點零分零秒)。
? ???????????????????????????????????????????????????????????????????????????????
n??????? 注解: 注意到在這個腳本的第三行中,我們使用了Math對象的Number()方法。如果我們不使用的話程序也能正常運行,但是結果會是不一樣的。如果你不希望使用這個方法來轉換不同的數據類型,那么有一個小技巧:一個使用parseInt(), parseFloat(),或者Number()函數可以轉換成數字的字符串,如果你用它減去0,那么你就會把它轉換成一個數字,如果你給一個數字上加一個空字符串,‘’,那么你就會把它轉換成一個字符串,這個功能通常需要使用toString()來處理。
? ???????????????????????????????????????????????????????????????????????????????
?
在代碼的第四行中,我們設置日期為originalDate.getDate()返回的值加上需要增加的天數計算出的結果,最后一行使用toString()方法以字符串的形式輸出originalDate這個日期對象所包含的日期。如果你正在使用IE5.5以上版本或者以Gecko為基礎的瀏覽器(Mozilla、 Netscape 6以上版本), 單獨使用日期的toDateString()函數會產生一個格式化好的字符串。你可以使用同樣的方法獲取和設置日期。如果你正在使用UTC時間,所有你需要作的就是把UTC加到這個方法名上。 因此getHours()變為getUTCHours(), setMonth()變為setUTCMonth(),以此類推。你也可以使用getTimezoneOffset()方法返回電腦的本地時間和UTC時間的小時差。(你不得不依賴用戶已正確設置了它們的時區,并意識到不同國家之間的夏時制差別。)
??????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
注解:對于嚴格的日期處理,JavaScript可能并不是最合適的技術,因為你無法信任客戶端的電腦都被適當正確地設定了。可是,你可以使用服務端的語言來構成你的JavaScript腳本中的初始日期,達到同樣的目的。
???????????????????????????????????????????????????????????????????????????????????
?轉載于:https://www.cnblogs.com/snake-hand/archive/2008/01/09/2452416.html
總結
以上是生活随笔為你收集整理的Javascript中Date对象的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS 2008 生成操作中各个选项的差别
- 下一篇: java 数据库连接实例,Java连接各