0

jquery ツールの date inputを使用しています。私のアプリケーションには、ユーザーが日付範囲に基づいて自分の個人データを確認できる機能があります。

日付入力機能をロードするテキスト入力フィールドがあります。ユーザーが日付を選択すると、テキスト フィールドに「dddd dd, mmmm yyyy」形式で表示されます。
私がやろうとしているのは、7 日 (つまり 1 週間) を追加し、新しい日付を上位範囲コンテナーに表示することです。詳細を説明するために、次のように表示されます。

差出人: 2012 年 5 月 18 日金曜日 宛先: // 2012 年 5 月 25 日金曜日

組み込みの API 関数addDay(amount)を使用しようとしていますが、機能していないようです。次のコードがあります。

var ret_date = $(this).data("dateinput").getValue('dddd dd, mmmm yyyy');
//I tried: $(this).data("dateinput").addDay(7).getValue('dddd dd, mmmm yyyy')
//but it kept the same currently selected date
$("#to_field").html(ret_date);

私はオンラインで検索しましたが、解決策が見つかりませんでした。私は一般的にフロントエンド開発者ではないので、javascript/jquery の知識は進んでいません。
どんな助けでも大歓迎です

4

1 に答える 1

1

ちなみに、これは私がやったことであり、それはうまくいきました:

$("#DateField").change(function(event, date) {
        //I used format: yyyy-mm-dd
        var ret_date= $(this).data("dateinput").getValue('yyyy-mm-dd');   
        //Format the date using javascript
        //--> For that 2 javascript prototypes have been created(check at the end of the answer)          
        var myDate = new Date(ret_date);
        myDate.setDate(myDate.getDate()+7);
        $("#FinalDateField").html(myDate.dateFormat("Y-m-d"));
});

プロトタイプ:

Date.prototype.dateFormat = function(format) {
  var result = "";
  for (var i = 0; i < format.length; ++i) {
    result += this.dateToString(format.charAt(i));
  }
  return result;
}

Date.prototype.dateToString = function(char) {
  switch (char) {
  case "Y":
    return this.getFullYear();
  case "m":
    return this.getMonth() + 1; //Since months are zero based, add 1
  case "d":
    return this.getDate();
  default:
    return char;
 }
}
于 2012-07-28T23:07:19.023 に答える