Même jour, même heure
Ma question est comment puis-je obtenir les mêmes jour, mois, année, heure, minutes, secondes dans un fuseau horaire différent, par exemple:
var now = moment().valueOf();
var result1 = moment(now).format('DD-MM-YYYY HH:mm:SS Z');
Dans mon fuseau horaire-je obtenir de la ce comme ceci:
18-02-2015 21:08:34 +01:00
Alors, comment puis-je changer uniquement le temps de la zone sans modifier les autres valeurs (jours, mois, ..., minutes, ...)
Je veux obtenir quelque chose comme ceci:
result2: 18-02-2015 21:08:34 +01:00
result3: 18-02-2015 21:08:34 +10:00
result4: 18-02-2015 21:08:34 +05:00
result5: 18-02-2015 21:08:34 -06:00
result6: 18-02-2015 21:08:34 -11:00
Merci d'avance
- Pas sûr de ce que tu veux dire. Si vous avez changé le décalage de fuseau horaire, sans réglage de l'heure - alors il ne représente plus le même "maintenant" moment dans le temps.
- BTW - "maintenant" est redondante dans votre code. Vous pouvez simplement supprimer la première ligne et ne
moment().format...
- merci Matt, mon problème est d'obtenir la même date dans defirent de fuseau horaire, sans changer rien(jours, mois, heures, minutes, ...) seulement changer le fuseau horaire, que ce dont j'ai besoin, mais je ne peux pas l'obtenir.
- C'est tout à fait légitime de cas d'utilisation de l'omi. J'ai un site qui définit uniquement des rendez-vous pour un fuseau horaire lorsque les utilisateurs ont fait des rendez-vous à partir d'un autre emplacement, il a été d'obtenir des résultats différents.
Vous devez vous connecter pour publier un commentaire.
Voici comment vous pourrait faire ce que vous demandez:
Cependant, vous devez reconnaître deux choses importantes:
La
another
objet ne représente plus l'heure actuelle - même dans le fuseau horaire cible. C'est un complètement différent moment dans le temps. (Le monde ne peut pas synchroniser les horloges locales. Si il l'a fait, nous n'aurions pas besoin pour les fuseaux horaires!).Pour cette raison, même si le code ci-dessus répond à la question qui a été posée, je recommande fortement contre lui à l'aide. Au lieu de cela, ré-évaluer vos besoins, car il est probable qu'ils sont à l'incompréhension de la nature du temps et des fuseaux horaires.
Un fuseau horaire ne peut pas être pleinement représentés par un décalage seul. Lire "Le Temps De La Zone != Offset"le fuseau horaire de la balise wiki. Alors que certains fuseaux horaires fixes décalages (comme +05:30 utilisé par l'Inde), de nombreux fuseaux horaires de changer leurs décalages à différents points tout au long de l'année pour accueillir l'heure d'été.
Si vous vouliez compte pour cela, vous pouvez utiliser moment-timezone au lieu de l'appeler
utcOffset(...)
. Cependant, le problème dans ma première puce continueront de s'appliquer.ngx-bootstrap
s DatePicker. Il toujours traiter avec le fuseau horaire local, mais si vous voulez qu'il soit à l'UTC dire, alors quelque chose comme cela peut fonctionner pour ce faire.true
paramètre). Vous ne savez pas exactement quelles versions qui a été ajouté, mais il est là maintenant - donc pas besoin de soustraire le décalage manuellement.Le plus voté réponse est en désordre de l'OMI. Voici une solution plus propre - similaire à BlueSam de la réponse, mais plus sûr:
Après la lecture des commentaires ci-dessus, je pensais que je voudrais ajouter, en fonction Joao de réponse.
Dans mon cas, j'ai essayé d'utiliser une préexistant moment, la date avec un fuseau horaire et de le convertir en un autre fuseau horaire, tout en conservant l'original date de valeur (comme demandé dans la question).
À partir du moment où docs: http://momentjs.com/timezone/docs/
référence moment-timezone-with-data.js et de spécifier le fuseau horaire pour aller, comme suit:
moment().tz("America/Los_Angeles").format("...whatever format...")
. La façon dont vous l'avez écrit, éventuellement mélanger le mois et le jour, quand la chaîne est formaté et ré-analysée. (Mais tout de même, ne traite pas de la question de la façon dont il l'avait demandé.)