web-dev-qa-db-fra.com

Comment convertir une date de moment en chaîne et supprimer l'objet moment

J'ai une application Web React Web et une application mobile native React.). Lorsque je passe un objet de date de moment de mon application Web rea à mon backend, il est converti. à une chaîne en quelque sorte et cela fonctionne avec mon backend.

Lorsque je le fais avec mon application mobile native native, il passe la date en tant qu'objet instant, il n'est pas converti en chaîne et cela ne fonctionne pas.

Est-il possible de convertir l'objet moment en une simple chaîne comme

"Tue May 05 2015 23:59:59 GMT+0800 (HKT)"

J'ai essayé toString () et toUTCString () et cela ne fonctionne pas. Merci.

14
Kelvin

Utilisez moment().format() pour créer une chaîne formatée à partir de la date.

console.log(moment().format())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>

Mais si vous utilisez la version 2.1.0+ ( link ), toString devrait fonctionner:

console.log(moment().toString())
console.log(typeof moment().toString())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
24
kevguy

Vous essayez d'appeler des méthodes qui n'existent que sur un objet javascript Date. Pour appeler ces méthodes, vous devez d’abord convertir l’objet Moment en un simple objet Date. Vous pouvez utiliser la méthode .toDate() sur l'objet Moment pour le faire.

var plainDate = moment().toDate();
console.log(plainDate.toUTCString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>

Cependant, un moyen plus direct de convertir un objet Moment en chaîne consiste à utiliser la méthode .format() , qui générera le standard "ISO 8601" ressemblant à 2014-09-08T08:02:17-05:00.

console.log( moment().format() );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
7
Soviut