2016-02-07 13 views
7

Was ich tue, ist, Daten von der Datenbank zu holen, die Ajax verwendet und es auf HTML Textfeldern für Aktualisierungszwecke zeigt. Unten ist mein Code der Web-Methode, von wo ich Daten erfolgreich erhalte.Wie man JSON Format Datumszeichenkette in Datumsformat parst

[WebMethod] 
public static List<Employee> getEmployee() 
{ 
    var slist = new List<Employee>(); 
    var db = new BLUEPUMPKINEntities(); 
    slist = db.Employees.ToList(); 
    return slist; 
} 

Nun, wenn ich Daten aus der Datenbank habe ich Datum in diesem Format /Date(725828400000)/. Ich suche google über parse und konvertiere json date string format in html/javascript date verwende auch 3rd party plugins wie moment.js und jquery.ui aber löse mein problem nicht. Auch hier teile ich meinen Code, aus dem ich Daten von Ajax im JSON-Format bekomme und zeige es auf Jquery Datatable.

Ich möchte Datum in mm/TT/JJJJ-Format. Bitte hilf mir mein Problem zu lösen.

+1

Beginn von von ISO Datum String Senden Server – charlietfl

Antwort

5

Wenn es kein Problem ist, eine Abhängigkeit in dem Hinzufügen, dann können Sie moment.js hinzufügen und es werden Ihnen helfen, Daten zu formatieren in einem beliebigen Format ich das Datum vom Server ist in diesem Format '/Date(725828400000)/'

var d = item.EMP_DOB; 
result.push(moment(Number(d.match(/\d+/)[0])).format('MM/DD/YYYY')); 
bin die Annahme

Wenn Sie keine Zeit js hinzufügen, dann können Sie soemthing wie

tun
var date = new Date(Number(d.match(/\d+/)[0])); 
var day = date.getDate(); 
day = day = (day < 10) ? ("0" + day) : day; 
var month = date.getMonth() + 1); 
month = (month < 10) ? ("0" + month) : month; 
var dateStr = day + "-" + month + "-" + date.getFullYear(); 
result.push(dateStr); 
+0

Dies wird nicht formatiert Format in Frage – charlietfl

+0

@charlietfl Ich bearbeitete meine Antwort, ich dachte, er bekommt eine gültige Datumszeichenkette aber Format ist unterschiedlich ent –

+0

Danke für deine richtige Antwort. Es funktioniert mich.Aber hier ist ein Problem, auch das ist ' 'Moment zugreifen js nicht in meine ajaxcall externen Datei. also stelle ich die ajaxcall -> getEmployee() -Methode außerhalb der externen Datei, so dass ich einfach darauf zugreifen kann. Aber ich möchte auf meinen Moment() in meine Ajaxcall-Methode zugreifen, weil ich in dieser Methode alle Ajax-Methoden einsetze. –

0

Der einfachste Weg unten zu tun ist (keine dritte Partei js erforderlich)

var data =from row in db.Employees.ToList() 
select new { 
    EMP_DOB=row.EMP_DOB.ToString(), row.EMP_FNAME,row.EMP_MNAME,row.EMP_LNAME 
    row.EMP_EMAIL,row.EMP_DOB,row.EMP_USERNAME,row.EMP_PASSWORD,row.ID 
}; 

Wenn Sie das Datum zu formatieren möchten, können Sie

var data =from row in db.Employees.ToList() 
    select new { 
     EMP_DOB=Convert.ToString(row.EMP_DOB).ToShortDateString(), other properties goes here as shown previously 
    }; 

verwenden Sie wil der Lage sein, es zu formatieren, was auch immer Sie mit C# wollen

+0

Danke für Ihren Kommentar zu handhaben, aber die Antwort nicht für mich arbeiten. –

+0

Diese Fehlerhervorhebung bei 'row.EMP_DOB.ToString()', ungültiger anonymer Typ member declartor. Anonyme Member müssen mit einer Member-Zuweisung, einem einfachen Namen oder Member-Zugriff deklariert werden. –

+0

Ich habe gerade meine Antwort bearbeitet, ich war draußen, konnte also nicht antworten. Sie können überprüfen, ob Sie möchten. Sie din't müssen alles in Client-Seite tun –

-1
var dbDate = "2014/03/12";  
var date = new Date(dbDate); 

// anstelle von fest codierten Datum, Ihre Zeichenfolge

Für Ihren Fall erhalten Sie einen langen Wert als Zeichenfolge aus Db. In eine weitere Zeile

var newDate = parseInt("725828400000"); // use here your item.EMP_DOB; 

nun diesen Wert zu Ihrem Objekt übergeben. Wie

var date = new Date(newDate); 


var mm = (date.getMonth()+1)>9?(date.getMonth()+1):"0"+(date.getMonth()+1); 
var dd = date.getDate()>9?date.getDate():"0"+date.getDate(); 
var yyyy = date.getFullYear(); 
var newDate = mm+"/"+"/"+dd+"/"+yyyy; 
alert(dbDate+" converted to "+newDate) 
+0

ich Datum bin immer in '/ Date (725.828.400.000) /' dieses Format nicht in dieser "2014.03.12" –

+0

var date = new Date (item.EMP_DOB) // es zeigt mir NaN Fehler –

+0

versuchen Sie dies: var newDate = parseInt ("725828400000"); // benutze hier dein Item.EMP_DOB; Übergeben Sie diesen Wert nun an Ihr Objekt. Wie var date = neues Datum (newDate); Sie übergeben langen Wert als Zeichenfolge, daher können Sie nicht analysieren. – zakaiter

0

diese Methode werden alle Ihre WCF Typ Daten javascript Date-Objekt konvertieren:

var dateRegex = /^\/Date\((d|-|.*)\)[\/|\\]$/; 

function convertWCFStringDate(strDate) { 
    var matched = dateRegex.exec(strDate); 
    if (matched) { 
     var parts = matched[1].split(/[-+,.]/); 
     return new Date(parts[0] ? +parts[0] : 0 - +parts[1]); 
    } 
} 
Verwandte Themen