javascript中擷取下個月一號,是星期幾_時間日期

來源:互聯網
上載者:User

複製代碼 代碼如下:

var odatef = new Date();
odatef.setFullYear(2012);
odatef.setMonth(5)
odatef.setDate(1);
fday = ordatef.getDay();

如果今天是5月30日,通過上面的代碼,我應該是擷取到下個月,即6月1日是星期幾?並賦值給變數fday;
果然,我可以正確擷取到;
過程是:
1.執行這句 odatef.setFullYear(2012);  那麼odatef對像會是:2012年5月30日;
2.執行到這句  odatef.setMonth(5);    那麼odatef對像會是:2012年6月30日;
3.執行到這句  odatef.setDate(1);    那麼odatef對像會是:2012年6月1日;
4.執行到這句  ordatef.getDay();    那麼擷取的就是:2012年6月1日,是星期幾了,正是我們想要的!


如果今天是5月31日,同樣是上面的代碼,我卻無法正確擷取到下個月是星期幾了。
原因:
1.執行這句 odatef.setFullYear(2012);  那麼odatef對像會是:2012年5月31日;
2.執行到這句  odatef.setMonth(5);    那麼odatef對像會是:2012年6月31日;問題就出在這第二步:6月份,是沒有31號的,所以它就會跳到7月 那麼odatef 對象會是:2012年7月31日,如果7月也沒有31日,繼續跳到8月,直到有31日的月份;
3.執行到這句  odatef.setDate(1);    那麼odatef對像會是:2012年7月1日;
4.執行到這句  ordatef.getDay();    那麼擷取的就是:2012年7月1日,是星期幾了,不是我們想要的!~
解決辦法:換一下語句的位置先設定日期,再設定月份!
複製代碼 代碼如下:

var odatef = new Date();
odatef.setFullYear(2012);
odatef.setDate(1);
odatef.setMonth(6)
fday = ordatef.getDay();

1.執行這句 odatef.setFullYear(2012);  那麼odatef對像會是:2012年5月31日;2.執行到這句  odatef.setDate(1);  那麼odatef對像會是:2012年5月1日;
3.執行到這句  odatef.setMonth(5);    那麼odatef對像會是:2012年6月1日;
4.執行到這句  ordatef.getDay();    那麼擷取的就是:2012年6月1日,是星期幾了!~~~
總結:要搞清楚每個語句,執行的結果倒底是什麼,或者返回的是什麼。先前一直以為,就是設定年份,月份。沒考慮設定之後的結果或返回的東西!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.