2017-05-19 22 views
0

私は複数のチェックボックスを選択してレポートの日付を選択しています。ユーザーは1つまたは複数のレポート日付を選択しています。私はJavaScriptを使用していますが、選択し取得するための日付:サーバの日付時刻形式

foreach (var reportDate in reportDates) 
{ 
    predicateReportDate = predicateReportDate.Or(p => p.LastUpdateDate == reportDate.ReportDate); 
} 

すべてがローカルで正常に動作しますが、私はにページを展開するとき、私は日付形式で問題を見つけました:私は、クエリコントローラーに選択された日付を渡すとcreading午前

var dateTime = new Date($(this).val()).toJSON(); 

サーバ。

ローカルDateTime書式が

'2017年4月21日午後十二時00分00秒'

のようですが、サーバ上で、私は全く別の日付を参照してください。

4/20/2017 6:00:00 PM

それはフィルタが動作しない原因pその日付のレポートがないため、サーバー上で気を付けてください(結果は返されません)。

両方:

LASTUPDATEDATE

reportDate.ReportDate

は、日付時刻(ない文字列)

であります

日付形式を統一してもらえますか?私が何をしたか

+0

あなたはその日が1日外れていると言っているのですか、または時間の部分をクリアする必要がありますか? –

+1

各Dateオブジェクトのタイムゾーンを検査してみてください。おそらく、正確に同じ時点を参照していますが、コードが実行されているローカルタイムゾーンに合わせて表示が調整されます。 – amphetamachine

+0

はおそらく最良の解決策ではありませんが、私は日付を一致させるためにこれを前に使用しています。 javascript 'var date1 = new Date(); date1.setHours(0、0、0、0); ' –

答えて

0

は次のとおりです。

私はフィルターから日付を読み込む行に置き換え:toJSON()が日付を変換しているようだ

var dateTime = $(this).val().split(' ')[0]; 

var dateTime = new Date($(this).val()).toJSON(); 

を(私はUTCを使用しています)ローカルサーバーのタイムゾーンに設定します。

関連する問題