2016-05-17 5 views
0

私は自分のフォームに、ユーザが日付を選択するためにJqueryUIdatepickerを使用しているいくつかの日付フィールドを持っています。ユーザーが日付を選択すると、日付はdd/mm/yy形式で表示されます。私は、クライアント側でデータバインディングを管理するためにKnockoutJSを使用してJqueryUIdatepickerため、次のKO結合ハンドラ使用しています:それはinputtextフィールドにdd/mm/yy形式で正しく表示され、ユーザーが日付を選択したときにユーザーがタイムゾーンなしで日付を選択しました

ko.bindingHandlers.datepicker = { 
    init: function (element, valueAccessor, allBindingsAccessor) { 
     var options = allBindingsAccessor().datepickerOptions || { dateFormat: 'dd/mm/yy' }; 
     $(element).datepicker(options); 

     ko.utils.registerEventHandler(element, "change", function() { 
      var observable = valueAccessor(); 
      observable($(element).datepicker("getDate")); 
     }); 

     ko.utils.domNodeDisposal.addDisposeCallback(element, function() { 
      $(element).datepicker("destroy"); 
     }); 

    }, 
    update: function (element, valueAccessor) { 
     var value = ko.utils.unwrapObservable(valueAccessor()), 
      current = $(element).datepicker("getDate"); 


     if (value - current !== 0) { 
      $(element).datepicker("setDate", value); 
     } 
    } 
}; 

をし、 javascriptDateオブジェクトがタイムゾーンとともに、KOobservableにキャプチャされています。私はko.toJSON()関数を使用して、さまざまな日付フィールドを含む複合体javascript object全体をJSON文字列に変換し、それをバックエンドでデシリアライズしています。 javascriptDateオブジェクトがJSON文字列に変換されたときに

私が直面しています問題は、それは私が想定しています、ユーザが選択した日付が原因でローカルタイムゾーンであり、これはjavascriptの日付オブジェクトのデフォルトの動作ですから1日が減少しています。私も、次のコードを使用して、選択した日からUTC日付を取得するmomentJsライブラリを試してみましたが、これは動作していないよう:

moment.utc(selectedDateObject).toDate() 

私が欲しいものは何でも、日付、ユーザが使用してフォームで選択し取得することですタイムゾーンのない日付ピッカー、平易でシンプル。これについてどうすればいいですか? DateオブジェクトがJavaScriptで不必要に複雑になるようです。

+0

モーメント(selectedDateObject).format( 'L')のような何かをする必要があります - このヘルプをすることができますか? – Shrabanee

+0

@ titi23これはうまくいきません。私が 'ko.toJSON()'を呼び出すと、選択した日付から1日が短縮されます... – seadrag0n

+1

あなたの手助けをするのが難しいので、いくつかの作業コードを表示できますか? JavascriptのgetUTCDate()を使用してみましたか? – Shrabanee

答えて

0

瞬間のJSON関数にオーバーライドする必要があります。

詳細はMoment Docsを参照してください、しかし、基本的にはこの

moment.fn.toJSON = function() { 
    return this.format('YYYY-MM-DDTHH:mm:ss'); //Or any desired format 
}; 
関連する問題