Formatage d'une chaîne de date pour convenir au calendrier Google comme argument

J'ai une chaîne qui représente une donnée comme 2014-juillet-2014. Je met en forme cette date dans javacript afin que je puisse l'utiliser comme argument pour le tableau de calendrier Google.

Par exemple

var x = "2014-July-12"; var splitted = x.spilt('-'); // to get "2014" at index [0], "July" at index [1] and "12" at index [2]. 

J'utilise ensuite un tableau de valeurs clés pour obtenir le nombre de mois. Ensuite, je regroupe la table de données de calendrier Google avec ..

 data.addRow([new Date(ParseInt("splitted[0]"),months.splitted[1], ParseInt("splitted[2]")), dataValues[i].Value]); 

J'utilise ParseInt () pour convertir de chaîne en nombre puisque la nouvelle Date (aaa, mm, dd) ne prend que des entiers entiers comme arguments. Je ne peux pas utiliser ce calendrier. J'ai cherché beaucoup sur le net mais je ne trouve pas un bon exemple de la façon de peupler le graphique du calendrier Google depuis le fichier json.

Pouvez-vous jetez un coup d'oeil et guidez-moi comment faire cette tâche et expliquez-moi si je me trompe. Merci d'avance.

Fonction de diagramme de diagramme de tirage

 function drawCalendarChart(jsonObj) { var dataValues = eval(jsonObj) var data = new google.visualization.DataTable(dataValues); data.addColumn({ type: 'date', id: 'Date' }); data.addColumn({ type: 'number', id: 'Reports' }); for (var i = 0; i < dataValues.length; i++) { var date = new Date(dataValues[i].Date); var year = date.getFullYear(), month = (date.getMonth() + 1), day = date.getDate(); if (month < 10) month = "0" + month; if (day < 10) day = "0" + day; var Formatted = "" + year + "," + month + "," + day; // data.addRow([new Date(dataValues[i].Date), dataValues[i].Frequencies]); data.addRow([new Date(Formatted), dataValues[i].Frequencies]); } var options = { title: "Calendar Chart", height: 350 }; var chart = new google.visualization.Calendar(document.getElementById('chart')); chart.draw(data, options); var table = new google.visualization.Table(document.getElementById('table')); table.draw(data, { showRowNumber: true }); } 

J'ai ajouté la fonction que j'utilise pour dessiner le graphique. Les données donnent une erreur NaN, NaN. La fréquence obtient les bonnes valeurs. Il doit donc être lié à la mise en forme de la date. C'est la chaîne de test que j'utilise.

 [ { "Date": "2014-January-15", "Frequencies": 11 }, { "Date": "2014-January-8", "Frequencies": 22 }, { "Date": "2014-January-10", "Frequencies": 11 } ] 

Gardez-le simple , cela devrait fonctionner:

 data.addRow([ new Date(dataValues[i].Date), dataValues[i].Frequencies ]); 

METTRE À JOUR

Cela a fonctionné pour moi , ici vous avez un violon de travail avec le code.

Voici comment vous pouvez convertir vos valeurs de date de chaîne en date numérotée.

 var date = new Date("12-January-2014"); var year = date.getFullYear(), month = (date.getMonth() + 1), day = date.getDate(); if (month < 10) month = "0" + month; if (day < 10) day = "0" + day; var Formatted = "" + year+"," + month+"," + day; 

MODIFIER

  var vt= new Date(year, month, day); alert(vt); 

Maintenant, vous pouvez utiliser ces variables dans la fonction de données au besoin.

Voici le code

J'espère que cela aide..!!!