2017-05-22 2 views
1

Ich habe ein ähnliches Problem wie von Benutzer7397787 in convert json date to javascript date format.JSON Datum auf normal JS Datum

Was ich habe, ist eine JSON-Zeichenfolge mit MySQL-Tabellendaten. Eines der Daten ist das Datum. Ich konvertierte dieses Datum in dem normalen Zeitpunkt meines eigenen Code verwenden, wie unten dargestellt:

var comp_date = []; 
for (var i in data) { 
    var fields = data[i].myDate.split('/'); 
    var mm = fields[0]; 
    var dd = fields[1]; 
    var yy = fields[2]; 
    mm < 10 ? '0' + mm : mm; 
    dd < 10 ? '0' + dd : dd; 
    var formatted_date = mm + "/" + dd + "/" + yy;     
    var dt = new Date(formatted_date); 
    comp_date.push(dt); 
} 

Dieses Datum wird in einem Balkendiagramm verwendet. Was jetzt passiert, ist, dass das Datum entlang der x-Achse so angezeigt wird Sat Sep 09 2017 00:00:00 GMT+0500 (Time Zone here) und y-Achse das Datum wird wie folgt angezeigt 1505900000000, 1505800000000, 1505700000000, 1505600000000. Ich möchte Datum auf beiden Seiten in mm-dd-yyyy Format.

Ich versuchte Datum mit dem von sammysaglam in convert json date to javascript date format wie folgt erklärt zu konvertieren:

var date = unix_to_readable(data[i].myDate); 

Aber dann habe ich alle mit dem gleichen Wert zurück Termine, die 01-01-1970 ist.

Wer weiß, was passiert oder was ich falsch mache?

Vielen Dank.

+0

@ChrisForrence du hast recht es funktioniert auch so. Ich bin ein neuer sein, also habe ich nicht viel Erfahrung in js coding. Danke, dass du darauf hingewiesen hast. Mein Wissen wurde aktualisiert. – whisps11

+0

Welche Grafikbibliothek verwenden Sie und welchen Typ erwarten Sie? Will es eine formatierte Zeichenkette oder wird es ein Javascript Date-Objekt und ein eigenes Format annehmen? Sie sagen, dass Sie im selben JSON-Objekt zwei verschiedene Daten zurückgeben und ein Satz (X-Achse) korrekt angezeigt wird und ein Satz (Y-Achse) nicht? –

+0

ich verwende chart.js diesem Beispiel folgend https://www.dyclassroom.com/chartjs/chartjs-how-to-draw-bar-graph-using-data-from-mysql-table-and-php – whisps11

Antwort

1

Ich nahm eine der Zahlen, die Sie sagten, Sie hatten Probleme mit 1505900000000. Dieses Code-Snippet zeigt, wie man es in JavaScript in eine lesbare Zeichenfolge (über ein Datumsobjekt) bringt. Wenn Sie das Snippet ausführen, zeigt eine Warnung die gesuchte Datumszeichenfolge an.

var dateNumberString = '1505900000000'; // This is what you get from JSON 
 
var dateNumber = parseInt(dateNumberString); // make it a number 
 
var date = new Date(dateNumber);// javascript will convert to date object for you 
 
var dateString = date.toString(); // make it a string 
 
alert(dateString);

dann das Datum zu formatieren, wie Sie es wollen:

var dateObj = new Date(); 
 
var formattedString = getFormattedDate(dateObj); 
 
alert(formattedString); 
 

 
// This function takes a javscript date object 
 
function getFormattedDate(date) { 
 
    var year = date.getFullYear(); 
 
    var month = (date.getMonth() + 1).toString(); // javascript month is zero based 
 
    month = month.length > 1 ? month : '0' + month; 
 
    var day = date.getDate().toString(); 
 
    day = day.length > 1 ? day : '0' + day; 
 
    return month + '-' + day + '-' + year; 
 
}