2017-06-09 2 views
0

Ich habe ein Kendo UI MVC Gitter auf einer Seite. In diesem Raster sind drei Datumsspalten. Die Daten (kein Zeitwert) werden in der Datenbank als lokale Zeit (nicht UTC) gespeichert. Diese Spalten werden im Raster wie folgt definiert:Moment Konvertieren von Datum in Ortszeit?

  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); 

Sie können sehen, ich bin mit meiner moment.js Datumsformatierung zu tun. Es scheint jedoch, dass dieser Moment davon ausgeht, dass diese Daten UTC-Daten sind und sie in Ortszeit umgerechnet werden. Wenn das Raster angezeigt wird, sehen die Daten wie folgt aus: enter image description here

Alle diese Daten sind um einen Tag deaktiviert. Zum Beispiel sollte die erste Zeile 1/15/2010, 1/1/2010, 1/15/2010 sein. Ist das ein normales Momentverhalten und kann es verändert werden?

Außerdem sind CloseoutDate, BeginDate und EndDate aktuelle C# Datetime-Werte. In der SQL Server-Datenbank werden sie als Datumsangaben gespeichert.

+0

Vielleicht versuchen, 'format' in den' moment (DateField) 'z. 'Moment (Ausnahmedatum, 'MM/TT/JJJJ')'. Quelle von [dieser Frage] (https://stackoverflow.com/a/37278220/6224482). – Sandman

+0

Welcher Wert ist 'CloseOutDate',' BeginDate' und'EndDate'? Sind diese Werte Zeichenfolgen? In diesem Fall können Sie ['moment (String, String)'] (http://momentjs.com/docs/#/parsing/string-format/) verwenden. – VincenzoC

+0

@VincenzoC - CloseoutDate, BeginDate und EndDate sind aktuelle C# Datetime-Werte. In der Datenbank werden sie als Daten gespeichert. –

Antwort

-1

u Datum in Spalte formatieren können

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

1) Ich habe keine Zeitkomponente an diesen Daten. 2) Wie würde dies verhindern, dass Daten in lokale Zeit konvertiert werden? 3) Wie würde ich dies an meine aktuellen Aussagen im Originalbeitrag weitergeben? –

+0

Was ist die Antwort von der Client-Seite? – DraganB

+0

Ich verstehe die Frage nicht –

0

Dies das Problem behoben:

  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); 

Grundsätzlich ist der Moment Bibliothek und die UTC-Konstruktor.

Verwandte Themen