web-dev-qa-db-fra.com

Ignorer les fuseaux horaires lors de la création d'une date en javascript / momentjs

Je crée un calendrier pour quelque chose sur la côte est, et je dois créer une date qui renvoie toujours un objet/horodatage de date pour cette heure.

Donc, si j'ouvre la page à Paris à 18h00, la "new myDate()" devrait renvoyer 12h00.

Des suggestions sur la façon dont je peux le faire avec Wether Moment ou simplement avec Javascript? Le résultat final doit être un objet Date javascript.

57
kimpettersen

Vous pouvez le faire avec moment.js en utilisant moment.utc().

http://momentjs.com/docs/#/parsing/utc/

moment([2011, 10, 8, 5]).format(); // different output based on timezone
moment.utc([2011, 10, 8, 5]).format(); // same output for all timezones

Le chemin moment.utc _ fonctionne en définissant un indicateur interne pour utiliser getUTCMinutes à la place de getMinutes, ainsi le résultat est le même dans tous les fuseaux horaires.

110
timrwood

Si vous souhaitez que votre fuseau horaire soit complètement ignoré, vous pouvez utiliser l'approche suivante:

  var firstDayStr = '29 January 2014';
  var startAtTime = '10:01:02 AM';
  var localFormat = 'YYYY-MM-DD[T]HH:mm:ss';

  var m = moment(firstDayStr + ' ' + startAtTime).format(localFormat);

  console.log(m);

Sortie:

2014-01-29T10:01:02 
11
Roman Pushkin