2017-08-25 1 views
0

Mon projet utilise donc le fuseau horaire. Et cela fonctionne parfaitement partout sauf dans un test unitaire. Et je ne peux pas comprendre pourquoi.moment timezone renvoie une valeur incorrecte pour le test unitaire

J'appelle

moment(new Date(date)).tz(timezone).format(mask); 

où la date, le masque, et le fuseau horaire sont les suivantes:

date  = "2016-11-11T19:34:56.601Z" 
mask  = "mm-dd-yyyy" 
timezone = "America/New_York" 

Le résultat que je reçois est: 34-Fr-yyyy

Dans un autre appel, le les événements suivants se produisent:

date  = "2016-12-13T21:57:53.336Z" 
mask  = "mm-dd-yyyy" 
timezone = "America/New_York" 

et le résultat est 57-Tu-yyyy

Répondre

1

Vous utilisez le mauvais format de date, le bon est MM-DD-YYYY.

var date  = "2016-12-13T21:57:53.336Z"; 
 
var mask  = "mm-dd-yyyy"; 
 
var timezone = "America/New_York"; 
 

 
var dateStr = moment(date).tz(timezone).format('MM-DD-YYYY'); 
 
console.log(dateStr);
<script src="http://momentjs.com/downloads/moment.js"></script> 
 
<script src="http://momentjs.com/downloads/moment-timezone-with-data.js"></script>

http://momentjs.com/docs/#/parsing/string-format