comment gérer la dépréciation d'avertissement dans momentjs
Je veux utiliser momentjs à vérifier pour les invalides de la date/heure de cordes:
var invalid = '2017-03-18 23;00;00';
if (moment(invalid).isValid()) {
return 'valid date'
}
Ce (correctement) renvoie une stacktrace avec le familier " Dépréciation d'avertissement: la valeur fournie n'est pas reconnu RFC2822 ou format ISO......'
Mais même si j'ajoute un try/catch:
try {
var invalid = '2017-03-18 23;00;00';
if (moment(invalid).isValid()) {
return 'valid date'
}
catch (err) {
throw Error ('invalid date format');
}
la stacktrace est encore imprimée.
Que dois-je faire pour éviter la stacktrace d'être imprimé?
J'ai cherché toutes les questions similaires sur StackOverflow mais ils ont tous essayer de résoudre un problème différent (fixation de l'entrée ou de trouver la syntaxe correcte pour analyser l'entrée).
Je l'aide v2.18.1.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
moment(String, String);
pour analyser votre entrée. Si vous ne souhaitez pas spécifier un format (ou un tableau de formats), vous pouvez utilisermoment.ISO_8601
. Comme les docs dit:De cette façon, vous n'aurez pas de warning de dépréciation. Voici un exemple de travail:
JS:
HTML:
PS. De toute façon, si vous avez une liste de format accepté, je suggère l'utilisation de
moment(String, String[]);
(et strict de l'analyse, si nécessaire).Spécifier le format de la chaîne de votre date, puis l'avertissement disparaîtra
Ci-dessous fonctionne pour moi de supprimer RFC2822 avertissements
Utilisation instant(String, FormatString) pour la convertir en chaîne de date.
Et code ci-dessous à partir de la date de Chaîne
Par ce moyen, il ne sera pas afficher les messages d'avertissement.
Ajoutant
.format()
sans aucun argument pour le moment expression qui était à l'origine de cette mise en garde a été la solution pour moi: