一、Date對象
每天一對象,今天來看看Date對象,相對於時間大家一定很熟悉,應為以前在網站中很多地方都會遇到這樣的時間特效。溫故而知新,今天我們來回憶一下Date對象。
我們首先來看看他的定義:
dateObj = new Date()
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
必選項。如果是數字值,dateVal 表示指定日期與1970 年1 月1 日午夜間全球標準時間的毫秒數。如果是字符串,則dateVal 按照parse 方法中的規則進行解析。 dateVal 參數也可以是從某些ActiveX® 對象返回的VT_DATE 值。 必選項。完整的年份,比如,1976(而不是76)。 必選項。表示的月份,是從0 到11 之間的整數( 1 月至12 月)。 必選項。表示日期,是從1 到31 之間的整數。 可選項。表示毫秒,是從0 到999 的整數。
Date 對象保存以毫秒為單位表示特定時間段。如果某個參數的值大於其範圍或為負數,則存儲的其他值將做相應的調整。例如,如果指定150 秒,JScript 將該數字重新定義為2 分30 秒。
如果數字為NaN,則該對像不代表特定的時間段。如果未向Date 對像傳遞參數,它將被初始化為當前時間(UTC)。在能夠使用該對象前必須為其賦值。
Date 對象能夠表示的日期範圍約等於1970 年1 月1 日前後各285,616 年。
Date 對象具有兩個不創建Date 對象就可以調用的靜態方法。它們是parse 和UTC。
Date對象的方法很多,也很簡單在這裡就不列出了,OK,See Next!
特別注意:
************************************************** ************
var myDate = new Date(2006,11,23);
alert("year="+myDate.getYear()+"******month="+myDate.getMonth()+"********day="+myDate.getDate());
運行之後的結果是year=2006 ******month=11********day=23
************************************************** ************
這樣顯示都很正常,當new Date的時候傳進去的月份為12的時候,就出現的問題。
************************************************** ************
var myDate = new Date(2006,12,23);
alert("year="+myDate.getYear()+"******month="+myDate.getMonth()+"********day="+myDate.getDate());
運行之後的結果是year=2007 ******month=0********day=23
************************************************** ************
很納悶的一件事情。最後查資料得知month這個參數的值是0~11的,不能傳入12的這個值。解決辦法就是在傳值的時候把month-1,然後在外面取的時候再+1。不知誰還有更好的辦法。
如:
var date=new Date(2010,0-1,15); //這裡0代表一月份,減1就變成12月份了
alert(date.getYear()+","+(date.getMonth()+1)+","+date.getDate());
var date=new Date(2010,12-1,15);
alert(date.getYear()+","+(date.getMonth()+1)+","+date.getDate());
參數是字符串的格式如:2010/1/6
示例:
var txtDepartureDate='2010-1-6'
alert(txtDepartureDate.replace(/-/g,'/')); //使用正則將'-'全部替換成/
var date = new Date(txtDepartureDate.replace(/-/g,'/'));