1

あるフィールドから日付を取得し、その日付を変更して、その値を別のフィールドに設定しようとしています。これが私のコードです:

var startDate = Xrm.Page.getAttribute('new_startdate').getValue();
var expiryDate = startDate.getDate()+3; //Add 3 days

var expiryField = Xrm.Page.getAttribute('new_expirydate').setValue(expiryDate);

誰かが私が間違っていることを説明できますか? 私はしばらくこれに取り組んできましたが、あからさまに明らかな何かが欠けているのではないかと心配しています..

前もって感謝します。

編集;

スクリプトが実行されると、1970 年 1 月 1 日が有効期限フィールドに設定されます。

4

2 に答える 2

4

これはうまくいくはずです

var startDate = Xrm.Page.getAttribute('new_startdate').getValue();
var expiryDate = new Date();
expiryDate.setDate(startDate.getDate()+3); //Add 3 days

var expiryField = Xrm.Page.getAttribute('new_expirydate').setValue(expiryDate);
于 2013-01-11T14:13:26.303 に答える
3

あなたの問題は、関数getDate()が月の日を返すことです。したがって、結果は

var startDate = new Date("January 11, 2013");
var expiryDate = startDate.getDate()+3;

14になります。

これは、Date(milliseconds) オーバーロードを使用して Date に変換されると仮定します。

1970 年 1 月 1 日 00:00:00 UTC (Unix エポック) からのミリ秒数を表す整数値。

したがって、この値が表示されます。

そのため、lazarus が投稿したソリューションは正しいアプローチを示しています。

于 2013-01-11T16:27:40.817 に答える