web-dev-qa-db-fra.com

formater la date avec moment.js

J'ai une chaîne dans ce format:

var testDate = "Fri Apr 12 2013 19:08:55 GMT-0500 (CDT)"

Je voudrais utiliser moment.js l'obtenir dans ce format mm/dd/yyyy : 04/12/2013 pour l'affichage.

J'ai essayé de le faire en utilisant cette méthode,

moment(testDate,'mm/dd/yyyy');

Quelles erreurs et dit there is no such method called replace? Est-ce que je l'aborde de la mauvaise façon?

Modifier:

Je devrais également mentionner que j'utilise une version préemballée de moment.js, emballée pour meteor.js

Object [object Date] has no method 'replace' : The Exact error from the console

Trace de la pile:

 at makeDateFromStringAndFormat (http://127.0.0.1:3000/packages/moment/lib/moment/moment.js?b4e3ac4a3d0794023a4410e7941c3e179398b5b0:539:29)
    at moment (http://127.0.0.1:3000/packages/moment/lib/moment/moment.js?b4e3ac4a3d0794023a4410e7941c3e179398b5b0:652:24)
    at populateProfileForEdit (http://127.0.0.1:3000/client/views/home/administration/directory/profiles/profiles.js?acfff908a6a099f37312f62892a22b40f82e5e0f:147:25)
    at Object.Template.profile_personal.rendered (http://127.0.0.1:3000/client/views/home/administration/directory/profiles/profiles.js?acfff908a6a099f37312f62892a22b40f82e5e0f:130:13)
    at Spark.createLandmark.rendered (http://127.0.0.1:3000/packages/templating/deftemplate.js?b622653d121262e50a80be772bf5b1e55ab33881:126:42)
    at http://127.0.0.1:3000/packages/spark/spark.js?45c746f38023ceb80745f4b4280457e15f058bbc:384:32
    at Array.forEach (native)
    at Function._.each._.forEach (http://127.0.0.1:3000/packages/underscore/underscore.js?867d3653d53e9c7a171483edbcad9670e12288c7:79:11)
    at http://127.0.0.1:3000/packages/spark/spark.js?45c746f38023ceb80745f4b4280457e15f058bbc:382:7
    at _.extend.flush (http://127.0.0.1:3000/packages/deps/deps.js?9642a93ae1f8ffa8eb1c2475b198c764f183d693:231:11) 
216
Warz

Le deuxième argument de moment() est un analyse format ​​plutôt qu'un display .

Pour cela, vous voulez la .format() méthode :

moment(testDate).format('MM/DD/YYYY');

Notez également que l'affaire est importante. Pour le mois, le jour du mois et l'année, le format doit être en majuscule.

500
Jonathan Lonowski

Incluez moment.js et utilisez le code ci-dessous pour formater votre date

var formatDate= 1399919400000;

var responseDate = moment(formatDate).format('DD/MM/YYYY');

Ma sortie est "13/05/2014"

40
Akalya

Pour la date de sortie, utilisez format. Le second argument est pour l'analyse - toutefois, si vous l'omettez, vous testDate provoquerez un avertissement pour obsolescence.

Avertissement de désapprobation: la valeur fournie n’est pas au format reconnu RFC2822 ou ISO ...

var testDate= "Fri Apr 12 2013 19:08:55 GMT-0500 (CDT)"

let s= moment(testDate).format('MM/DD/YYYY');

msg.innerText= s;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

<div id="msg"></div>

pour omettre cet avertissement, vous devez fournir un format d'analyse

var testDate= "Fri Apr 12 2013 19:08:55 GMT-0500 (CDT)"

let s= moment(testDate, 'ddd MMM D YYYY HH:mm:ss ZZ').format('MM/DD/YYYY');

console.log(s);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
4
Kamil Kiełczewski
moment().format();                                // "2019-08-12T17:52:17-05:00" (ISO 8601, no fractional seconds)
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Monday, August 12th 2019, 5:52:00 pm"
moment().format("ddd, hA");                       // "Mon, 5PM"
1
Avinash Sharma