1

Ich habe Probleme beim Binden von Datetime in Beatpicker beim Abrufen von Daten aus der Datenbank. Im Picker es macht wie: "/ Date (1465323300000) /", die KOJS wie:Datumsbindung in Asp.Net mit Knockout

DematRenounced.js

if (obj.ResponseData != null) { 
               if (obj.ResponseData.length > 0) { 
                var DematRenouncedEntry = obj.ResponseData[0]; 

                self.entrydate(DematRenouncedEntry.entrydate); 

              } 

und Darstellung als:

DematRenouncedEntry.aspx

<input type="text" id="txtEntryDate" data-beatpicker="true" class="form-control" 
             data-bind="value:entrydate" maxlength="10" onblur="return valFutureDate(this,'Y',true);" 
             onpaste="return false" onkeypress="return isNumberKey(event)" 
             placeholder="YYYY.MM.DD" /> 
+0

http: //everythingjs.blogspot.co.uk/2012/03/json-dates-and-knockoutjs-date-binding.html ..basiert reguläre Ausdrücke, um das Datum zu analysieren und dann in das Format TT-MM-JJJJ zu konvertieren. –

Antwort

2

Die vom Server zurückgegebenen Daten werden offenbar mit Microsoft JsonSerializer serialisiert, das beim Serialisieren von DateTime-Eigenschaften ein nicht standardmäßiges Format verwendet. Siehe diese Antwort für weitere Details: https://stackoverflow.com/a/726869/4602079.

Was Sie tun müssen, bevor Sie etwas mit dem Datum auf dem Client tun können, ist, es als Datum zu analysieren. In Ihrem Fall könnten Sie DematRenounced.js wie folgt ändern:

self.entrydate(new Date(parseInt(DematRenouncedEntry.entrydate.replace("/Date(", "").replace(")/",""), 10))); 
0

Nach Maciej Grzyb Antwort, schließlich habe ich Lösung.

var t = new Date(parseInt(DematRenouncedEntry.entrydate.replace("/Date(", "").replace(")/", ""), 10)); 

              var m = t.getMonth(); 
              var d = t.getDate(); 
              function addZ(m) { return m < 10 ? '0' + m : '' + m; }; 
              function addZy(d) { return d < 10 ? '0' + d : '' + d; }; 
              var y = t.getFullYear(); 
              var format = y + "." + addZ(m) + "." + addZy(d); 
              self.entrydate(format);