0

クライアント用のライブラリ(jQueryなど)なしでDatePickerを構築する必要がありました。ローカルマシンで成功しました。ただし、私のクライアントは現在それを使用しており、Web アプリに含まれていると奇妙な動作を示します。

5 月 31 日を選択して翌月にスクロールすると、最終的に 7 月 1 日になります。ボタンをクリックして「jumpToNextMonth」関数を起動する前に、DateObject infact には 5 月 31 日があります。私は、dateObject が存在しない 6 月 31 日にジャンプし、7 月 1 日に 1 つ進むと仮定します。これは 8 月にも発生し、他のすべての 30 日制月の後に 31 日制月が続きます。

クリックで起動する行は

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

ローカル マシンでこの動作は見られませんし、Apache サーバーを実行しているのも見られません。クライアントの Web アプリで日付オブジェクトが破損する原因を想像できません。残念ながら、それらのファイルにアクセスできません。

次の 2 つの質問にお答えいただけると助かります。

  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

4

1 に答える 1

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);
于 2012-07-13T11:52:49.927 に答える