javascript中Date對象的初始化方法

在前端代碼中不免會涉及到時間的操做,如何構造一個Date對象呢?javascript爲咱們提供以下幾種方式:javascript

new Date("month dd,yyyy hh:mm:ss");
    new Date("month dd,yyyy");
    new Date(yyyy,mth,dd,hh,mm,ss);
    new Date(yyyy,mth,dd);
    new Date(ms);

其中:前端

  • month:用英文表示月份名稱,從January到December
  • mth:用整數表示月份,從0(1月)到11(12月)
  • dd:表示一個月中的第幾天,從1到31
  • yyyy:四位數表示的年份
  • hh:小時數,從0(午夜)到23(晚11點)
  • mm:分鐘數,從0到59的整數
  • ss:秒數,從0到59的整數
  • ms:毫秒數,爲大於等於0的整數

構造函數中部分參數爲負數的狀況:java

>new Date(1990,11,-1)
>Thu Nov 29 1990 00:00:00 GMT+0800 (中國標準時間)
>new Date(1990,10,-1)
>Tue Oct 30 1990 00:00:00 GMT+0800 (中國標準時間)
>new Date(1990,10,-2)
>Mon Oct 29 1990 00:00:00 GMT+0800 (中國標準時間)
>new Date(1990,-1,-2)
>Tue Nov 28 1989 00:00:00 GMT+0800 (中國標準時間)
>new Date(1990,-1,0)
>Thu Nov 30 1989 00:00:00 GMT+0800 (中國標準時間)

上面的結果,你可能會有疑惑,不急,且跟我一塊兒往下看:瀏覽器

在月份小於0時,構造函數會在月份爲0的基礎上,向上X月,如:函數

new Date(2015,-1,1) Mon Dec 01 2014 00:00:00 GMT+0800 (中國標準時間)code

在日小於1時,構造函數會在天數爲1的基礎上,向上X天,如:對象

new Date(2015,0,0) Wed Dec 31 2014 00:00:00 GMT+0800 (中國標準時間)ip

若是二者都爲負數,能夠先計算月,再計算日,得出正確結果,如:開發

new Date(2015,-1,0) Sun Nov 30 2014 00:00:00 GMT+0800 (中國標準時間)get

若是月大於11,日大於當月天數,自動向後推移,如(2015年2月份只有28天):

new Date(2015,1,29) Sun Mar 01 2015 00:00:00 GMT+0800 (中國標準時間)

也就是說在開發過程當中,咱們徹底能夠使用new Date(yyyy,mm,dd)構造函數提供的這一特性,完成上一日,下一日,上一月,下一月這樣的日期操做。

上一日:

new Date(yyyy,mm,dd-1)

下一日:

new Date(yyyy,mm,dd+1)

上一月:

new Date(yyyy,mm-1,dd)

下一月:

new Date(yyyy,mm+1,dd)

在IE九、Chrome及Firefox瀏覽器實測經過。 Date對象的其餘方法

相關文章
相關標籤/搜索