Suite de mon précédent message: Javascript Safari: new Date () avec des chaînes renvoie une date invalide lors de la saisie J'utilise Moment.js pour convertir une chaîne de date en champ de date en fonction de la saisie de l'utilisateur dans le texte boîte. Ceci afin d'éviter que le problème que j'ai décrit dans l'article lié pour Safari et que Firefox ne puisse pas afficher la date, lorsque Chrome, c'est bien. Voici le code snipper:
var tempDate = moment(userInputFieldDate).format('DD-MM-YYYY');
alert(tempDate);
Dans Chrome, cela fonctionne bien (cela fonctionnait aussi avec l’objet Date de Javascript), mais je me donne l’avertissement de désapprobation moment.js
Avertissement de déprécation: moment où la construction tombe à js Date. Ceci est déconseillé et sera supprimé dans la prochaine version majeure. Veuillez vous référer à https://github.com/moment/moment/issues/1407 pour plus d'informations. Arguments: [objet Objet] Erreur
Sur Firefox et Safari est simplement donne une date non définie dans la fenêtre d'alerte. Donc, pas tout à fait sûr de ce que je devrais faire pour convertir la chaîne de date en objet Date. Aucune suggestion ?
Si vous obtenez une date basée sur JS String
, utilisez d'abord le constructeur new Date(String)
puis transmettez l'objet Date
à la méthode moment
. Comme:
var dateString = 'Thu Jul 15 2016 19:31:44 GMT+0200 (CEST)';
var dateObj = new Date(dateString);
var momentObj = moment(dateObj);
var momentString = momentObj.format('YYYY-MM-DD'); // 2016-07-15
Dans le cas où dateString
est 15-07-2016
, Vous devez utiliser la méthode moment(date:String, format:String)
var dateString = '07-15-2016';
var momentObj = moment(dateString, 'MM-DD-YYYY');
var momentString = momentObj.format('YYYY-MM-DD'); // 2016-07-15
si vous avez une chaîne de date, alors vous devriez essayer ceci.
const FORMAT = "YYYY ddd MMM DD HH:mm";
const theDate = moment("2019 Tue Apr 09 13:30", FORMAT);
// Tue Apr 09 2019 13:30:00 GMT+0300
const theDate1 = moment("2019 Tue Apr 09 13:30", FORMAT).format('LL')
// April 9, 2019
ou essayez ceci:
const theDate1 = moment("2019 Tue Apr 09 13:30").format(FORMAT);