JavaScriptにはネイティブDate
オブジェクトが含まれています。次のように月を追加できます...
var endDate = document.getElementById('enddate').value;
var date = new Date(endDate);
date.setMonth(date.getMonth() + 2); // Yes it will calculate going over a year etc
prevExpiryDate = date.getFullYear() + "/" +
(date.getMonth() + 1) + "/" + // Months are 0 for January etc.
date.getDate();
ノート
- オブジェクトに値を入力する形式は、
Date
これを最初に検証することが重要です。
- 有効期限を作成するとき、値の前にゼロは追加されません2012/12/09、2012/12/9になります
または、提案されているようにライブラリを使用できます
更新されたコードを編集して、OPのコードに簡単に追加できるようにします
別のアプローチでは、イベントハンドラーを使用します。コードにjQueryを使用していることがわかります。これを含めると、それを最大限に活用できます...
$("#enddate").change(function() {
var endDate = $(this).val();
// Calculate expiry date
var date = new Date(endDate);
date.setMonth(date.getMonth() + 2);
// Get date parts
var yyyy = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
$("#expirydate").val(yyyy + "/" + m + "/" + d);
});
これは、ドキュメントの準備ができた後、コード行441で実行する必要があります。これにより、enddateフィールドが設定され、変更されるたびに有効期限フィールドが更新されます。プログラムで変更する場合は、変更ハンドラーを手動で呼び出す必要がある場合があります
// Insert value programmatically
$("#enddate").val(newValue).change();
それ以外の場合は、初期値を関数に渡す方法が必要です。displayCalendar
この関数がどのように機能するかについての詳細がないため、これがどのように行われるかを最もよくアドバイスすることはできません。
編集この関数は、onchangeを呼び出している2006年のDHTMLGoodies JSカレンダーの一部ですが、jQueryとうまく連携しないため、上記のjQueryコードを置き換える要素の基本的なonchangeプロパティを使用して実行する必要があります。 。
document.getElementById("enddate").onchange = function() {
var endDate = this.value;
// Calculate expiry date
var date = new Date(endDate);
date.setMonth(date.getMonth() + 2);
// Get date parts
var yyyy = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
document.getElementById("expirydate").value = yyyy + "/" + m + "/" + d;
}