2012-07-13 65 views
0

我必須爲客戶端構建沒有任何庫(如jQuery)的DatePicker。 我在本地機器上成功了。然而,我的客戶現在正在使用它,如果它包含在他的網絡應用程序中,它顯示出一些奇怪的行爲。Javascripts dateObject:從5月31日跳到下個月獲取7月1日

如果我選擇5月31日並滾動到下個月,我將在7月1日結束。 DateObject事實上有5月31日我點擊按鈕來啓動「jumpToNextMonth」函數。 我假設dateObject跳轉到6月31日,這是非展現,然後前往7月1日前進。 這種情況發生在8月以及其後的所有其他30天的月份之後是31天的月份。

它發射了上點擊該生產線是

this.currentDate = new Date(this.currentDate.getFullYear(), 
          this.currentDate.getMonth() + 1, 
          this.currentDate.getDate()); 

我看不到我的本地機器上的這種行爲我也不看它運行的Apache服務器。 我無法想象會破壞客戶端Web應用上的日期對象,但不幸的是我無法訪問他們的文件。

我會很感激,如果你願意幫我回答這兩個問題:

  1. 它爲什麼我的本地機器
  2. 如何解決它發生時沒有設定日爲「1 「例如this.currentDate = new Date(this.currentDate.getFullYear(), this.currentDate.getMonth() + 1, 1);

我發現類似的非回答問題,這裏 Flex Mobile 4.6: DateSpinner dateAndTime jumping from Jan 31st to March 1st

+0

您已回答了您的問題。 6月31日實際上是7月1日。 – 2012-07-13 11:52:29

回答

0

你已經回答了你自己的問題。 6月31日實際上是7月1日。

這是否解決您的問題?

function daysInMonth(month, year) 
{ 
    return 32 - new Date(year, month, 32).getDate(); 
} 

var y = this.currentDate.getFullYear(); 
var m = this.currentDate.getMonth() + 1; 
var d = Math.min(this.currentDate.getDate(), daysInMonth(m, y); 
this.currentDate = new Date(y, m, d); 
+0

好吧,我真的發現爲什麼它不會發生在我的本地機器上。 這是如何通過JavaScript DatePickers正常修復的?跳到每個月的第一天? – ProblemsOfSumit 2012-07-13 12:04:10

+0

我編輯了我的帖子。所提供的代碼是否解決您的問題? – 2012-07-13 12:17:03

+0

它呢,謝謝。雖然我改變了主意,但我只是跳到每個月的第一天:-) – ProblemsOfSumit 2012-07-13 12:29:06

相關問題