119 votes

Comment obtenir les dates de Highcharts dans l'axe des x ?

Existe-t-il un moyen standard d'obtenir des dates sur l'axe des x pour Highcharts ? Je ne la trouve pas dans leur documentation : https://api.highcharts.com/highcharts/xAxis.type

Lorsque mon intervalle de temps est suffisamment grand, il affiche les dates. Cependant, lorsque la plage horaire n'est pas assez large, il affiche uniquement les heures, comme ceci :

enter image description here

C'est loin d'être idéal... s'il était possible d'afficher une date et une heure dans ce cas, ce serait génial. Quelqu'un sait comment faire ?

262voto

eolsson Points 5834

Highcharts essaiera automatiquement de trouver le meilleur format pour la plage de zoom actuelle. Ceci est fait si l'axe des x a le type 'datetime' . Ensuite, l'unité du zoom actuel est calculée, elle peut être l'une des suivantes :

  • deuxième
  • minute
  • heure
  • jour
  • semaine
  • mois
  • année

Cette unité est ensuite utilisée pour trouver un format pour les étiquettes des axes. Les modèles par défaut sont :

second: '%H:%M:%S',
minute: '%H:%M',
hour: '%H:%M',
day: '%e. %b',
week: '%e. %b',
month: '%b \'%y',
year: '%Y'

Si vous souhaitez que le jour fasse partie des étiquettes de niveau "heure", vous devez modifier l'élément dateTimeLabelFormats pour ce niveau comprennent %d o %e . Voici les modèles disponibles :

  • %a : Jour de semaine court, comme 'Mon'.
  • %A : Long jour de semaine, comme 'lundi'.
  • %d : Jour du mois à deux chiffres, de 01 à 31.
  • %e : Jour du mois, de 1 à 31.
  • %b : Mois court, comme 'Jan'.
  • %B : Mois long, comme 'janvier'.
  • %m : Numéro du mois à deux chiffres, de 01 à 12.
  • %y : Année à deux chiffres, comme 09 pour 2009.
  • %Y : Année à quatre chiffres, comme 2009.
  • %H : Deux chiffres des heures au format 24h, de 00 à 23.
  • %I : Deux chiffres des heures au format 12h, de 00 à 11.
  • %l (L minuscule) : Heures au format 12h, de 1 à 11.
  • %M : Deux chiffres pour les minutes, de 00 à 59.
  • %p : Majuscule AM ou PM.
  • %P : minuscule AM ou PM.
  • %S : Secondes à deux chiffres, de 00 à 59

http://api.highcharts.com/highcharts#xAxis.dateTimeLabelFormats

16 votes

C'est peut-être une question stupide mais par curiosité... où avez-vous trouvé le reste de ces codes de date ? La référence ne montre que les modèles par défaut que vous avez inclus.

20 votes

Trouvé en lisant la source, vérifiez la méthode dateFormat ici : Utilities.js

2 votes

Pour ajouter à cela, le modèle par défaut pour le niveau de zoom actuel comprend également la touche "milliseconde".

33voto

Bhesh Gurung Points 24875

Vérifiez ceci échantillon à partir de l'API Highcharts.

Remplacez ceci

return Highcharts.dateFormat('%a %d %b', this.value);

Avec cette

return Highcharts.dateFormat('%a %d %b %H:%M:%S', this.value);

Regardez aquí sur le dateFormat() fonction.

Voir aussi - tickIntervalle y pointIntervalle

0 votes

C'est une vieille question, mais cette réponse a été très utile. En particulier le lien d'exemple que vous avez joint.

0 votes

Le lien vers l'échantillon ne fonctionne plus. Rien ne se passe lorsque nous sélectionnons Run.

1 votes

@Simsons Le lien Highcharts que j'avais utilisé était mort, j'ai donc mis à jour le lien. Maintenant, le violon semble fonctionner.

19voto

Ronniemittal Points 349

Tu écris comme ça.. :

xAxis: {
        type: 'datetime',
        dateTimeLabelFormats: {
           day: '%d %b %Y'    //ex- 01 Jan 2016
        }
}

Vérifiez également les autres formats de date

http://api.highcharts.com/highcharts#xAxis.dateTimeLabelFormats

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X