Re: [問題] javascript取得月份天數的方法
※ 引述《StarTouching (撫星)》之銘言:
: 我發現有個方法是
: new Date(year, month, 0).getDate()
這裡有個trick 可能其他人沒看見的地方是
假設你要查 2011/10 (year = 2011 , month = 10)
事實上 new Date( 2011,10,0) 是
2011/11/0 的意思 (記得month 在api中是從0開始嗎 )
也就是2011/10/最後一天
但是如果你assume 這裡的month 變數是從 0開始
(也就是2011/10 你給 year= 2011,month = 9 )
那你一樣會拿到上個月的日期 這是要小心的
: 註: 和 setDate(0) 效果不同
每次call setDate(0) 都會移到當前月份的上個月的日期,
而且它是每次call都會改變
我不確定你說效果不同是用什麼方式做比較
但是
var d = new Date( 2011,10,1);
d.setDate(0);
跟
var d = new Date( 2011,10,0);
會拿到一樣的結果哦 :P
Mon Oct 31 2011 00:00:00 GMT+0800 (Taipei Standard Time)}
setDate 還有一個要小心的地方,
重複call同樣的setDate(0)是會改變狀態的。
var d = new Date( 2011,10,1)
d.setDate(0); //d = Mon Oct 31 2011
d.setDate(0); //d = Mon Sep 31 2011
: 不過w3schools好像也沒提到這件事情
: 很好奇這是正規的方法嗎?
: 還是很可能因瀏覽器而異?
這是spec 上規定的事情,不太可能因為瀏覽器而異,
不過我覺得你這樣的描述並沒有掌握到它真正會這樣作得理由,
你只知道有這件事,但不知道為什麼。XD
這篇文章應該解釋的有比較清楚一點,
總之 date = 0 表示是要找上個月的最後一天。
然後處理日期操作時一定要特別小心 month 是從0 開始這件事
--
網頁上拉近距離的幫手 實現 GMail豐富應用的功臣
數也數不清的友善使用者體驗 這就是javascript
歡迎同好到 AJAX 板一同討論。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 208.54.86.187
※ 編輯: TonyQ 來自: 208.54.86.187 (10/27 00:18)
推
10/27 00:25, , 1F
10/27 00:25, 1F
推
10/27 04:45, , 2F
10/27 04:45, 2F
推
10/27 11:42, , 3F
10/27 11:42, 3F
推
10/28 16:15, , 4F
10/28 16:15, 4F
→
10/28 16:16, , 5F
10/28 16:16, 5F
→
10/29 13:47, , 6F
10/29 13:47, 6F
→
10/29 13:48, , 7F
10/29 13:48, 7F
→
10/29 13:48, , 8F
10/29 13:48, 8F
→
10/29 13:50, , 9F
10/29 13:50, 9F
→
10/29 13:51, , 10F
10/29 13:51, 10F
→
10/29 13:54, , 11F
10/29 13:54, 11F
→
10/29 13:55, , 12F
10/29 13:55, 12F
推
10/30 15:24, , 13F
10/30 15:24, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章