2016-07-26 13 views
0

私は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)です。

enter image description here

注:この例では、私は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('-'); 
} 

おかげで、 マルコ

+0

'baseViewModel.date'は' baseViewModel.dateTo'になると思います –

+0

コピーすると – ilMattion

+0

あなたはmomentjsコールを削除するとどうなりますか?予想される日付が表示されますか? –

答えて

0

独自の日付フォーマッタを記述する必要はありません、代わりに、例えばJavaScriptの日のtoISOStringメソッドを使用します

function loadData() { 
var from = new Date(this.dateFrom()); 
var to = new Date(this.dateTo()); 

$.get("Home/GetData", 
     { 
     dateFrom: from.toISOString(), 
     dateTo: to.toISOString() 
     }, 
     function (result) { 
     console.log(result);   
     }); 
} 

あなたのMVC GETメソッドは、これらの日付を正しく解釈することができます。

関連する問題