2017-06-09 36 views
0

我在頁面上有一個Kendo UI MVC網格。在這個網格中有三個日期列。日期(無時間值)作爲本地時間(不是UTC)存儲在數據庫中。這些列在網格中定義如下:時刻轉換日期到當地時間?

  columns.Bound(p => p.CloseoutDate).ClientTemplate("#= moment(CloseoutDate).format('MM/DD/YYYY') #").Width(120); 
      columns.Bound(p => p.BeginDate).Title("Begin Date").ClientTemplate("#= moment(BeginDate).format('MM/DD/YYYY') #").Width(110); 
      columns.Bound(p => p.EndDate).Title("End Date").ClientTemplate("#= moment(EndDate).format('MM/DD/YYYY') #").Width(110); 

您可以看到我使用了moment.js來執行日期格式設置。但是,似乎現在假設這些日期是UTC日期並將它們轉換爲當地時間。顯示網格時,日期如下所示: enter image description here

所有這些日期都將關閉一天。例如,第一行應該是1/15/2010,1/1/2010,1/15/2010。這是正常的時刻行爲,可以改變嗎?

此外,CloseoutDate,BeginDate和EndDate是實際的C#日期時間值。在SQL Server數據庫中,它們存儲爲日期。

+0

也許嘗試將'format'移動到'moment(DateField)'例如'時刻(CloseoutDate,'MM/DD/YYYY')'。來自[此問題](https://stackoverflow.com/a/372​​78220/6224482)。 – Sandman

+0

'CloseoutDate','BeginDate'和'EndDate'的值是多少?這些值是否是字符串?在這種情況下,你可以使用['moment(String,String)'](http://momentjs.com/docs/#/parsing/string-format/)。 – VincenzoC

+0

@VincenzoC - CloseoutDate,BeginDate和EndDate是實際的C#日期時間值。在數據庫中,它們存儲爲日期。 –

回答

-1

U可以在列

{ field: "beginDate", title: "Begin Date", format: "{0:yyyy-MM-ddTHH:mm:ss}",parseFormats: "{0:yyyy-MM-ddTHH:mm:ss}"} 
+0

1)在這些日期我沒有時間組件。 2)這將如何防止日期轉換爲當地時間? 3)我如何將它傳遞給原始文章中顯示的當前陳述? –

+0

客戶端的迴應是什麼? – DraganB

+0

我不明白問題 –

0

格式化日期這個固定的問題:

  columns.Bound(p => p.CloseoutDate).ClientTemplate("#= moment.utc(CloseoutDate,'MM/DD/YYYY').format('MM/DD/YYYY') #").Width(120); 
      columns.Bound(p => p.BeginDate).Title("Begin Date").ClientTemplate("#= moment.utc(BeginDate,'MM/DD/YYYY').format('MM/DD/YYYY') #").Width(120); 
      columns.Bound(p => p.EndDate).Title("End Date").ClientTemplate("#= moment.utc(EndDate,'MM/DD/YYYY').format('MM/DD/YYYY') #").Width(120); 

基本上使用的那一刻庫和UTC構造。