私はAsp.net MVCとKnockout.jsとMoment.jsライブラリを使って1つのWebアプリケーションを開発しています。私は2つの日付を読み、1つのAjax呼び出しを行う簡単なフォームを持っています。なぜ2つのjavascriptの日付インスタンスのGMTが異なるのですか?
これは私のコードです:
<div id="graph-filters" >
<input class="datepicker" data-bind="value: baseViewModel.dateFrom" />
<input class="datepicker" data-bind="value: baseViewModel.dateTo" />
<input type="button" class="btn btn-primary" data-bind="click: baseViewModel.loadData" value="Aggiorna" />
</div>
function loadData() {
var from = moment(this.dateFrom()).format("DD-MM-YYYY");
var to = moment(this.dateTo()).format("DD-MM-YYYY");
$.get("Home/GetData", { dateFrom: formatDate(from), dateTo: formatDate(to) }, function (result) {});
}
問題は、私は2番目のラインloaddataの機能を渡す際に、変数の値が正しくないということです。私の期待値は、2016年7月31日(2016-07-31)です。
注:この例では、私は2016年1月7日に挿入した(2016年7月1日)dateFrom性及び31/07/2016(2016年7月31日)のためにdateToプロパティの。
問題を解決するにはどうすればよいですか?
EDIT:
function loadData() {
var from = new Date(this.dateFrom());
var to = new Date(this.dateTo());
$.get("Home/GetData", { dateFrom: formatDate(from), dateTo: formatDate(to) }, function (result) {});
}
は、FormatDate関数は、YYYY-MM-DD形式で日付を変換する:私はこのコードを使用して同じ問題を抱えています。コードの下:
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year, month, day].join('-');
}
おかげで、 マルコ
'baseViewModel.date'は' baseViewModel.dateTo'になると思います –
コピーすると – ilMattion
あなたはmomentjsコールを削除するとどうなりますか?予想される日付が表示されますか? –