0
votes

Comment formater la date d'analyse de ASPX JSON via AJAX?

En fait, je manifeste certaines données de MySQL puis je les sérialisise comme JSON. L'étape suivante est la rétrécie du JSON via AJAX et mettez les données dans un graphique.js.

Le problème est que les valeurs de date sont formatées comme P>

/ date (154564434687) / P> blockQuote>

Voici le code JQuery où je définit les valeurs sur le graphique à partir de JSON analysé P>

 function GetMOV() {

        $.ajax({
            type: "post",
            url: "index.aspx/GetMOV",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) {

                data = r.d;
                data = jQuery.parseJSON(data)

                new Chart(document.getElementById("linechart"), {
                    type: 'line',
                    data: {
                        labels: data.map(f => f.text),
                        datasets: [
                            {
                                label: "Venduto",
                                data: data.map(f => f.value),
                                fill: false,
                                borderColor: 'rgba(75,192,192,1)',
                                lineTension: 0.1,
                                borderWidth: 3,
                                pointBackgroundColor: '#fff',
                                pointBorderWidth: 1,
                                pointHoverRadius: 5,
                                borderCapStyle: 'square',
                                borderJoinStyle: 'square',
                                pointHitRadius: 20,
                                pointStyle: 'circle',
                            }
                        ]
                    },
                    options: {
                        legend: { display: false },
                        scales: {
                            yAxes: [{
                                ticks: {
                                    beginAtZero: true,
                                    min: 0
                                },
                                time: {
                                    unit: 'year'
                                }
                            }]
                        }
                    }
                });

            },
            error: function (error) {
                OnFailure(error);
                alert('Error');
            }
        });
    }


4 commentaires

Sur quelle ligne définissez-vous la valeur de date à la carte?


@Sonalborkar Labels: data.map (f => f.text) ici


Dupliqué possible de Comment formater une date Microsoft JSON?


@Rob j'ai encore essayé quelque chose comme une nouvelle date (données.map (f => f.text), il ne fonctionne pas car ce n'est pas une chaîne


3 Réponses :


1
votes

Vous pouvez utiliser cette fonction xxx


2 commentaires

Pouvez-vous mettre vos données complètes ici?


10: {Valeur: 4111.47, Texte: "/ Date (1540159200000) /"} 11: {Valeur: 5122.85, Texte: "/ Date (1540245600000) /"} 12: {Valeur: 3906.24, Texte: "/ Date (1540332000000 ) / "} 13: {valeur: 3749.79, Texte:" / Date (1540418400000) / "} 14: {Valeur: 6349.68, Texte:" / Date (1540504800000) / "}



1
votes

Vous pouvez également utiliser une bibliothèque Momentjs.

var yourdate = "/Date(154564434687)/";
moment(Number(yourdate.match(/\d+/)[0])).format('MM/DD/YYYY')
"11/25/1974"


1 commentaires

Il y a juste un problème que j'ai un tableau avec beaucoup de données, pas une seule chaîne



2
votes

 à l'aide du mot clé de carte avec la fonction

Je viens d'essayer une ligne de codes. Voulez-vous comme ça? P>

var data = [{value: 4111.47, text: "/Date(1540159200000)/"} ,{value: 5122.85, text: "/Date(1540245600000)/"} ,{value: 3906.24, text: "/Date(1540332000000)/"} ,{value: 3749.79, text: "/Date(1540418400000)/"} , {value: 6349.68, text: "/Date(1540504800000)/"}];
function ToJavaScriptDate(value) {
  var pattern = /Date\(([^)]+)\)/;
  var results = pattern.exec(value);
  var dt = new Date(parseFloat(results[1]));
  return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
}
data.map(c=>ToJavaScriptDate(c.text))


2 commentaires

Ceci est une fonction, pouvez-vous déplacer cette fonction au-dessus de la fonction getMov ()?


Je me faisais juste à la mauvaise variable, c'est des œuvres merci