197 votes

javascript toISOString() ignore le décalage du fuseau horaire

J'essaie de convertir Twitter datetime en iso-string local (pour prettyDate) maintenant pendant 2 jours. Je ne comprends pas l'heure locale.

im en utilisant la fonction suivante :

function getLocalISOTime(twDate) {
    var d = new Date(twDate);
    var utcd = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(),
        d.getMinutes(), d.getSeconds(), d.getMilliseconds());

    // obtain local UTC offset and convert to msec
    localOffset = d.getTimezoneOffset() * 60000;
    var newdate = new Date(utcd + localOffset);
    return newdate.toISOString().replace(".000", "");
}

dans newdate tout est ok mais le toISOString() le remet à l'heure originale... Quelqu'un peut-il m'aider à obtenir l'heure locale en iso de la Twitterdate formatée comme : jeu, 31 mai 2012 08:33:41 +0000

138voto

Dustin Silk Points 1179

Ma solution sans utiliser moment est de la convertir en horodatage, d'ajouter le décalage de fuseau horaire, puis de la reconvertir en objet de date, puis d'exécuter le toISOString()

var date = new Date(); // Or the date you'd like converted.
var isoDateTime = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString();

9voto

boxes Points 179

moment.js FTW ! ! ! Il vous

suffit de convertir votre date en un instant et de la manipuler comme bon vous semble :

var d = new Date(twDate);
var m = moment(d).format();
console.log(m);
// example output:
// 2016-01-08T00:00:00-06:00

http://momentjs.com/docs/

4voto

Il sera très utile d'obtenir la date et l'heure actuelles.

var date=new Date();
  var today=new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().replace(/T/, ' ').replace(/\..+/, '');  

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