Wie konvertiert man JavascriptSerializer serialisierte DateTime-Zeichenfolge in Javascript Date-Objekt

8

Nachdem ich ein Objekt mit DateTime -Feld mit JavaScriptSerializer serialisiert habe, sehe ich, dass das DateTime -Feld wie folgt aussieht:

%Vor%

Wie kann ich diese Zeichenfolge in ein Javascript Date-Objekt konvertieren?

    
dragonfly 23.04.2013, 08:00
quelle

4 Antworten

7

Es gibt eine Antwort, die Ihnen helfen kann:

Parsen von Datum und Uhrzeit von JavaScript zu C #

Wenn Sie die Datetime-Zeichenfolge mit javascript zu datetime-Wert analysieren möchten, müssen Sie "new Date" wie folgt verwenden:

%Vor%     
Hakan KOSE 23.04.2013, 08:05
quelle
16

UPDATE : Diese Antwort ist möglicherweise nicht in allen Fällen angemessen. Siehe JDs Antwort für eine elegante Lösung, die wahrscheinlich besser ist.

Sie könnten einfach die Ausgabe von JavaScriptSerializer auf der .Net-Seite der Dinge "reparieren":

%Vor%

Dies würde sich ändern

%Vor%

bis

%Vor%

Was direkt von Javascript konsumierbar ist

BEARBEITEN: Aktualisierung für negative Daten

EDIT: Hier ist die Regex-Zeile für VB-Leute:

%Vor%

UPDATE 2016.11.20: Mit viel mehr datetime Handhabung in javascript / json hinter mir würde ich vorschlagen, die Regex zu etwas so einfach wie

zu ändern %Vor%

Der resultierende Wert ist ein gültiger JSON und kann auf der JavaScript-Seite in ein Date-Objekt konvertiert werden.

Es ist auch erwähnenswert, dass moment.js ( Ссылка ) dieses Format glücklich genug behandelt.

%Vor%     
Jefferey Cave 07.11.2013 20:37
quelle
7
%Vor%     
gp. 23.04.2013 08:17
quelle
6

Dies ist ein bisschen wie ein Hack, aber das obige schien für das, was ich erreichen möchte, unelegant, also habe ich in der Objektdefinition, die ich serialisiere, folgendes gemacht:

%Vor%

Der Punkt ist, dass zumindest in meinem Anwendungsfall (Deserialisierung findet nie statt) der JSON nicht wirklich interessiert, was C # mit dem Datumswert macht. Wenn Sie [ScriptIgnore] dem DateTime -Wert hinzufügen und eine alternative Ansicht für die Ausgabe des Parsers angeben, sollten Sie dies tun. In meinem Fall:

%Vor%     
J.D. Ray 16.10.2014 18:32
quelle

Tags und Links