javascript中獲取下個月一號,是星期幾
更新時間:2012年06月01日 23:08:16 作者:
如果今天是5月30日,通過上面的代碼,我應(yīng)該是獲取到下個月,即6月1日是星期幾?并賦值給變量fday的實現(xiàn)代碼
復(fù)制代碼 代碼如下:
var odatef = new Date();
odatef.setFullYear(2012);
odatef.setMonth(5)
odatef.setDate(1);
fday = ordatef.getDay();
如果今天是5月30日,通過上面的代碼,我應(yīng)該是獲取到下個月,即6月1日是星期幾?并賦值給變量fday;
果然,我可以正確獲取到;
過程是:
1.執(zhí)行這句 odatef.setFullYear(2012); 那么odatef對像會是:2012年5月30日;
2.執(zhí)行到這句 odatef.setMonth(5); 那么odatef對像會是:2012年6月30日;
3.執(zhí)行到這句 odatef.setDate(1); 那么odatef對像會是:2012年6月1日;
4.執(zhí)行到這句 ordatef.getDay(); 那么獲取的就是:2012年6月1日,是星期幾了,正是我們想要的!
如果今天是5月31日,同樣是上面的代碼,我卻無法正確獲取到下個月是星期幾了。
原因:
1.執(zhí)行這句 odatef.setFullYear(2012); 那么odatef對像會是:2012年5月31日;
2.執(zhí)行到這句 odatef.setMonth(5); 那么odatef對像會是:2012年6月31日;問題就出在這第二步:6月份,是沒有31號的,所以它就會跳到7月 那么odatef 對象會是:2012年7月31日,如果7月也沒有31日,繼續(xù)跳到8月,直到有31日的月份;
3.執(zhí)行到這句 odatef.setDate(1); 那么odatef對像會是:2012年7月1日;
4.執(zhí)行到這句 ordatef.getDay(); 那么獲取的就是:2012年7月1日,是星期幾了,不是我們想要的!~
解決辦法:換一下語句的位置先設(shè)置日期,再設(shè)置月份!
復(fù)制代碼 代碼如下:
var odatef = new Date();
odatef.setFullYear(2012);
odatef.setDate(1);
odatef.setMonth(6)
fday = ordatef.getDay();
1.執(zhí)行這句 odatef.setFullYear(2012); 那么odatef對像會是:2012年5月31日;2.執(zhí)行到這句 odatef.setDate(1); 那么odatef對像會是:2012年5月1日;
3.執(zhí)行到這句 odatef.setMonth(5); 那么odatef對像會是:2012年6月1日;
4.執(zhí)行到這句 ordatef.getDay(); 那么獲取的就是:2012年6月1日,是星期幾了!~~~
總結(jié):要搞清楚每個語句,執(zhí)行的結(jié)果倒底是什么,或者返回的是什么。先前一直以為,就是設(shè)置年份,月份。沒考慮設(shè)置之后的結(jié)果或返回的東西!
相關(guān)文章
JavaScript 模仿vbs中的 DateAdd() 函數(shù)的代碼
JavaScript 模仿vbs中的 DateAdd() 函數(shù)的代碼...2007-08-08關(guān)于js日期轉(zhuǎn)化為毫秒數(shù)“節(jié)省20%的效率和和節(jié)省9個字符“問題
最近在看松散耦合可定制百度的開源框架tangram.js目光突然就聚焦在一種獲得毫秒數(shù)的寫法2012-03-03