2012-09-02 89 views
2

我使用telerik raddatepicker控件選擇日期。將javascript gettime()轉換爲c#datetime

我從控制獲取日期值,將其轉換成JavaScript日期對象,然後使用的getTime獲得總毫秒:

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

我選擇的日期是2012年6月4日(美國)。 當我打印新日期(FromDate)的結果時,我得到了我選擇的正確日期。

在服務器端,我嘗試使用我從JavaScript的拿到了毫秒獲得DateTime對象,所以我用這個代碼:

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

,但是當我打印沒有fromdate我得到2012/6/3 9點:00 AM(前一天..)。 我檢查並看到,轉換爲Double返回正確的毫秒數,因爲我得到了JavaScript。

有沒有人有一個想法我做錯了什麼?

謝謝, Inbal。

回答

2

getTime方法獲得的值不是從當地時間,而是從世界時。當您將這些毫秒添加到1970-1-1時,您將獲得世界時,而不是當地時間。

使用ToLocal方法獲取DateTime值本地時間:

DateTime fromDate = 
    seventies.AddMilliseconds(Convert.ToDouble(Reader["FromDateMill"])).ToLocal();