J'essaye d'utiliser des highcharts pour afficher des données sur les dernières 24 heures. Le graphique nécessite l'heure de début lorsque vous utilisez le temps pour l'axe des x comme dans cet exemple exemple de temps Highcharts . Je ne sais pas comment lui dire de commencer il y a 24 heures, par exemple, si l'heure était maintenant 22:34 pm le 18, je veux qu'il commence à 22:34 pm le 17. Je ne suis pas très bon avec le code lié à l'heure et à la date et Javascript n'est pas non plus mon point fort. Je crois que j'aurais besoin que la sortie finie soit quelque chose comme: pointStart: Date.UTC(2012, 5, 17, 22, 34)
Pour l'exemple ci-dessus, mais je ne sais pas trop comment l'obtenir à partir de Date ().
Edit: Je ne sais pas pourquoi il a été marqué comme un doublon, mais j'essayais d'obtenir une heure relative à l'heure actuelle (maintenant - 24h), pas une représentation sous forme de chaîne relative ("il y a vingt-quatre heures"). L'autre question ne mentionne pas du tout les highcharts.
Vous devez utiliser des horodatages car vous pouvez calculer avec eux.
Voici comment obtenir l'horodatage actuel: Math.round(new Date().getTime() / 1000)
Veuillez noter qu'il s'agit de l'heure locale de l'ordinateur.
Vous pouvez maintenant obtenir l'horodatage il y a 24 heures comme ceci:
var ts = Math.round(new Date().getTime() / 1000);
var tsYesterday = ts - (24 * 3600);
Veuillez voir ce violon: http://jsfiddle.net/Mjm7V/
Edit: Comme Nick l'a correctement souligné, Date#getTime
renvoie l'horodatage UTC ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime )
C'est en fait assez simple:
var yesterday = new Date(new Date().getTime() - (24 * 60 * 60 * 1000));
Construisez simplement un nouveau Date
avec la valeur de l'horodatage actuel moins 24 heures.
(24 heures multipliées par 60 minutes par heure multipliées par 60 secondes par minute multipliées par 1000 millisecondes par seconde)
Il y a 24 heures:
new Date(Date.now() - 86400 * 1000).toISOString()
new Date().toISOString()
'2017-02-04T09:15:25.233Z'
Date.now()
renvoie les secondes depuis Epoch.86400
Secondes dans un jour fois 1000
Pour convertir en millisecondes'2017-02-03T09:14:11.789Z'
Il suffit de soustraire le nombre de millisecondes en 24 heures de la date:
new Date (Date.UTC(2012, 5, 17, 22, 34) - 24 * 3600 * 1000)