首先介紹一下Date 對象
創建一個日期對象:
var objDate=new Date([arguments list]);
它沒有參數,返回的數值就是當前的日期。下面的表格顯示了日期構造器的有效輸入:
[list]
[*]無參數的構造函數
[/list]
var today = new Date();
返回當前的日期和時間
[list]
[*]new Date("month dd,yyyy hh:mm:ss");
[/list]
month:用英文表示月份名稱,從January到December
mth:用整數表示月份,從(1月)到11(12月)
dd:表示一個月中的第幾天,從1到31
yyyy:四位數表示的年份
hh:小時數,從0(午夜)到23(晚11點)
mm:分鐘數,從0到59的整數
ss:秒數,從0到59的整數
var newyear = new Date("December 31, 1998 23:59:59");
輸入的是表單的字符串 “月 日,年 小時:分鐘:秒”
[list]
[*]new Date(yyyy,mth,dd);
[/list]
var bday = new Date(75, 1, 16);
參數是年份,月,日
[list]
[*]new Date(yyyy,mth,dd,hh,mm,ss);
[/list]
var bday = new Date(75, 1, 16, 12, 0, 0);
參數是年份,月,日,小時,分鐘,秒
還有兩種構造方式:
[list]
[*]new Date("month dd,yyyy");
[/list]
[list]
[*]new Date(ms);
[/list]
需要注意這一種形式,參數表示的是需要創建的時間和GMT時間1970年1月1日之間相差的毫秒數。
示例:
new Date("January 12,2006 22:19:35");
new Date("January 12,2006");
new Date(2006,0,12,22,19,35);
new Date(2006,0,12);
new Date(1137075575000);
[b]上面的各種創建形式都表示2006 年1月12日這一天。[/b]
[b]這裏作點補充:月份是從0開始的,比如一月份=0,二月份=1,三月份=3等等。[/b]
從上面可以看出創建一個日期對象是相對地簡單,以下的表格是一系列的函數可以用於改變或者訪問這些對象的屬性:
[list]
[*]日期訪問方法
[/list]
[b]getYear()[/b]
返回年份的最後兩位數字
[b]getMonth()[/b]
返回年份中的第幾月(0到11)
[b]getDate()[/b]
返回月份中的第幾日(1到31)
[b]getDay()[/b]
返回星期中的第幾天 (0到6)
[b]getTimezoneOffset()[/b]
返回當地時間與格林尼治天文臺平均時間的差別
[b]getHours()[/b]
返回一天中的時針點數(0到23)
[b]getMinutes()[/b]
返回分鐘 (0..59)
[b]getSeconds()[/b]
返回時間的秒 (0到59)
[b]getTime()[/b]
返回自從公元1970年1月1日的毫秒數
這裏注意:IE瀏覽器的一些版本返回Timezoneoffset數值是用錯誤的符號,比如用”-”代替”+”等等。
示例:顯示當前日期 按照YYYY-MM-DD格式顯示
<script type="text/javascript">
function showDate(){
var today = new Date();
var day = today.getDate();
var month = today.getMonth() + 1;
var year = today.getYear();
var date = year + "-" + month + "-" + day;
document.getElementById('currentDate').value = date;
}
</script>
<input type="text" name="currentDate" id="currentDate" onclick="showDate()">
[list]
[*]日期設置方法
[/list]
[b]setDate() [/b]
設置每月中的第幾天(從0到30)
[b]setHours()[/b]
設置小時(從0到23)
[b]setMinutes()[/b]
設置分鐘(從0到59)
[b]setMonth()[/b]
設置月份(從0到11)
[b]setSeconds() [/b]
設置秒數(從0到59)
[b]setTime()[/b]
設置時間(從公元以來的毫秒數)
[b]setYear()[/b]
設置年份
[list]
[*]其它的日期方法
[/list]
[b]parse [/b]
轉化日期字符串爲自從公元以來的毫秒數,比如Date.parse(“date string”)
[b]toString()[/b]
Sat Jun 2 16:08:24 UTC+0800 2001
[b]toGMTString() [/b]
Sat, 2 Jun 2001 08:08:24 UTC
[b]toLocaleString()[/b]
2001年6月2日 16:08:24
所有的這些函數引用於獨立的日期對象。如果你具有深厚的Java編程背景,那麼你可以將它們認爲是Date類的一些公共的方法而已。
下面給出一個典型的例子來設置日期對象到當前時間加1年:
var nextYear = new Date(); // 初始化日期對象
nextyear.setYear(nextYear.getYear() + 1); // 增加1年
實際上,parse函數是Date對象的一個方法,而不是一個獨立的日期變量,如果使用Java術語,它就稱爲Date類的一個靜態方法。這個正是我們爲什麼使用Date.pase()而不使用somedate.parse()的原因啦。