JavaScript中的setMonth()方法的小問題 解決:setMonth(month, 1)


      今天測試人員發現一個問題,從英文日期轉化中文日期,月份總會有“6月”變為“7月”。於是我在本地反復測試,發現如下規律:只要setMonth()的參數為小於31天的月份時就會變為下一個月。
       原因是:因為當前月份是31天,而設置的月份小於31天,就會把日期順延。在setMonth的說明是這樣的:
setMonth 方法
設置 Date 對象中用 本地時間表示的月份值。
dateObj.setMonth(numMonth[, dateVal])
參數
dateObj
必選項。任意 Date 對象。
numMonth
必選項。一個等於月份值的數值。
dateVal
可選項。一個代表日期的數值。如果沒有提供此參數,那么將使用通過調用 getDate 方法而得到的數值。

       所以,從對dataVal參數的說明可以看出,在設置月份的同時,使用getDate獲取日期,並使用得到的日期值設置了日期。於是就會發生月份順延的情況。

      解決方法:
      1、設置月份時,將日期設為1,記setMonth(month, 1),當然可以在setMonth之前先調用setDate()設置日期;
      2、也可以在初始化Date對象時,就指定一個日期,也就是使用:dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]) 的形式。
   3、也可以使用setFullYear()同時設置年、月、日,即setFullYear(numYear[, numMonth[, numDate]])。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM