2

telerikraddatepickerコントロールを使用して日付を選択します。

コントロールから日付値を取得し、それをjavascript Dateオブジェクトに変換してから、getTimeを使用して合計ミリ秒を取得します。

            var FromDate = $find("<%=fromDate.ClientID%>").get_dateInput().get_displayValue();
            var FromDateMill = new Date(FromDate).getTime();

私が選んだ日付は2012年6月4日(私たち)です。新しいDate(FromDate)の結果を印刷すると、選択した正しい日付が取得されます。

サーバー側では、JavaScriptから取得したミリ秒を使用して日時オブジェクトを取得しようとしているため、次のコードを使用します。

DateTime seventies = new DateTime(1970, 1, 1);
DateTime fromDate = seventies.AddMilliseconds(Convert.ToDouble(Reader["FromDateMill"]));

しかし、fromDateを印刷すると、2012年6月3日午前9:00:00(前日..)になります。確認したところ、javascriptで取得したとおり、toDoubleへの変換で正しいミリ秒数が返されることがわかりました。

誰かが私が間違っていることを知っていますか?

ありがとう、インバル。

4

1 に答える 1

2

メソッドから取得する値getTimeは、現地時間からではなく、世界時から取得されます。これらのミリ秒を1970-1-1に追加すると、現地時間ではなく世界時が得られます。

このメソッドを使用しToLocalて、現地時間のDateTime値を取得します。

DateTime fromDate =
  seventies.AddMilliseconds(Convert.ToDouble(Reader["FromDateMill"])).ToLocal();
于 2012-09-02T11:20:48.397 に答える