Question Comment mettre en forme une date JavaScript


Comment puis-je mettre en forme un objet de date JavaScript à imprimer en tant que 10-Aug-2010?


1257
2017-08-23 23:28


origine


Réponses:


Attention: Il y a de meilleures réponses ci-dessous. Cette réponse a été écrite en 2010 et de nouvelles et meilleures solutions sont arrivées depuis. Le PO devrait accepter une autre réponse.

function formatDate(date) {
  var monthNames = [
    "January", "February", "March",
    "April", "May", "June", "July",
    "August", "September", "October",
    "November", "December"
  ];

  var day = date.getDate();
  var monthIndex = date.getMonth();
  var year = date.getFullYear();

  return day + ' ' + monthNames[monthIndex] + ' ' + year;
}

console.log(formatDate(new Date()));  // show current date-time in console

Vous pouvez éditer le tableau monthNames utiliser Jan, Fév, Mar, etc.


864
2017-08-23 23:35



Utilisation toLocaleDateString();

le toLocaleDateString() method renvoie une chaîne avec une représentation sensible à la langue de la partie date de la date. Les arguments locales et options permettent aux applications de spécifier la langue dont les conventions de formatage doivent être utilisées et permettent de personnaliser le comportement de la fonction.

Les valeurs que vous pouvez passer dans les options pour différentes clés:

  1. journée: 
    La représentation du jour.
    Les valeurs possibles sont "numérique", "à deux chiffres".
  2. jour de la semaine: 
    La représentation du jour de la semaine.
    Les valeurs possibles sont "étroit", "court", "long".
  3. an: 
    La représentation de l'année.
    Les valeurs possibles sont "numérique", "à deux chiffres".
  4. mois: 
    La représentation du mois.
    Les valeurs possibles sont "numérique", "2 chiffres", "étroit", "court", "long".
  5. heure: 
    La représentation de l'heure.
    Les valeurs possibles sont "numérique", "à deux chiffres".
  6. minute: La représentation de la minute.
     Les valeurs possibles sont "numérique", "à deux chiffres".
  7. seconde: 
    La représentation de la seconde.
    Les valeurs possibles sont "numérique", à deux chiffres ".

Toutes ces clés sont facultatives. Vous pouvez modifier le nombre de valeurs d'options en fonction de vos besoins, ce qui reflète également la présence de chaque terme de date.

Remarque: Si vous souhaitez uniquement configurer les options de contenu, mais toujours utiliser les paramètres régionaux en cours, en passant null car le premier paramètre provoquera une erreur. Utilisation undefined au lieu.

Pour différentes langues:

  1. "en-US": Pour l'anglais
  2. "Salut dans": Pour Hindi
  3. "ja-JP": Pour le japonais

Vous pouvez utiliser plus d'options de langue.

Par exemple

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var today  = new Date();

console.log(today.toLocaleDateString("en-US")); // 9/17/2016
console.log(today.toLocaleDateString("en-US", options)); // Saturday, September 17, 2016
console.log(today.toLocaleDateString("hi-IN", options)); // शनिवार, 17 सितंबर 2016

Vous pouvez également utiliser le toLocaleString() méthode pour le même but. La seule différence est que cette fonction fournit le moment où vous ne passez pas d'options.

// Example
9/17/2016, 1:21:34 PM

Les références:


766
2017-12-01 08:11



Utilisez le bibliothèque date.format:

var dateFormat = require('dateformat');
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");

résultats:

Saturday, June 9th, 2007, 5:46:21 PM 

dateformat sur npm

http://jsfiddle.net/phZr7/1/


523
2017-08-23 23:35



Si vous avez besoin de formater rapidement votre date en JavaScript, utilisez getDate, getMonth + 1, getFullYear, getHours et getMinutes:

var d = new Date();

var datestring = d.getDate()  + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " +
d.getHours() + ":" + d.getMinutes();

// 16-5-2015 9:50

Ou, si vous avez besoin d'être complétée avec des zéros:

var datestring = ("0" + d.getDate()).slice(-2) + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" +
    d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2);

// 16-05-2015 09:50

326
2018-05-16 07:02



Eh bien, ce que je voulais était de convertir la date d'aujourd'hui en un MySQL chaîne de date conviviale comme 2012-06-23, et d'utiliser cette chaîne comme paramètre dans une de mes requêtes. La solution simple que j'ai trouvée est la suivante:

var today = new Date().toISOString().slice(0, 10);

Gardez à l'esprit que la solution ci-dessus ne ne pas prenez en compte votre décalage de fuseau horaire.

Vous pourriez envisager d'utiliser cette fonction à la place:

function toJSONLocal (date) {
    var local = new Date(date);
    local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return local.toJSON().slice(0, 10);
}

Cela vous donnera la bonne date au cas où vous exécutez ce code autour du début / fin de la journée.


301
2018-06-23 18:49



Si vous êtes utilise déjà l'interface utilisateur jQuery dans votre projet, vous pouvez le faire de cette façon:

var formatted = $.datepicker.formatDate("M d, yy", new Date("2014-07-08T09:02:21.377"));

// formatted will be 'Jul 8, 2014'

Certaines options de format de date datepicker pour jouer avec sont disponibles ici.


157
2017-07-09 13:52



Je pense que vous pouvez simplement utiliser le non-standard Méthode de date toLocaleFormat(formatString)

formatString: Une chaîne de format dans le même format attendu par le strftime() fonctionner en C.

var today = new Date();
today.toLocaleFormat('%d-%b-%Y'); // 30-Dec-2011

Les références:


112
2017-12-30 05:33



Fonction de formatage personnalisée:

Pour les formats fixes, une simple fonction fait le travail. L'exemple suivant génère le format international AAAA-MM-JJ:

function dateToYMD(date) {
    var d = date.getDate();
    var m = date.getMonth() + 1; //Month from 0 to 11
    var y = date.getFullYear();
    return '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
}

console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

Le format OP peut être généré comme:

function dateToYMD(date) {
    var strArray=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var d = date.getDate();
    var m = strArray[date.getMonth()];
    var y = date.getFullYear();
    return '' + (d <= 9 ? '0' + d : d) + '-' + m + '-' + y;
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

Remarque: Cependant, il n'est généralement pas judicieux d'étendre les bibliothèques standard JavaScript (par exemple en ajoutant cette fonction au prototype de Date).

Une fonction plus avancée pourrait générer une sortie configurable basée sur un paramètre de format.

Si écrire une fonction de formatage est trop long, il existe de nombreuses bibliothèques autour desquelles le faire. D'autres réponses les énumèrent déjà. Mais l'augmentation des dépendances a aussi son contre-partie.

Fonctions de formatage ECMAScript standard:

Depuis les versions plus récentes d'ECMAScript, le Date La classe a des fonctions de formatage spécifiques:

toDateString: En fonction de l'implémentation, affiche uniquement la date.

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.todatestring

new Date().toDateString(); // e.g. "Fri Nov 11 2016"

toISOString: Afficher la date et l'heure ISO 8601.

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.toisostring

new Date().toISOString(); // e.g. "2016-11-21T08:00:00.000Z"

toJSON: Stringifier pour JSON.

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tojson

new Date().toJSON(); // e.g. "2016-11-21T08:00:00.000Z"

toLocaleDateString: Dépend de l'implémentation, une date au format locale.

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaledatestring

new Date().toLocaleDateString(); // e.g. "21/11/2016"

toLocaleString: Dépend de l'implémentation, date et heure au format locale.

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocalestring

new Date().toLocaleString(); // e.g. "21/11/2016, 08:00:00 AM"

toLocaleTimeString: Dépend de l'implémentation, une heure au format locale.

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaletimestring

new Date().toLocaleTimeString(); // e.g. "08:00:00 AM"

toString: ToString générique pour la date.

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tostring

new Date().toString(); // e.g. "Fri Nov 21 2016 08:00:00 GMT+0100 (W. Europe Standard Time)"

Note: il est possible de générer des sorties personnalisées à partir de ces formats>

new Date().toISOString().slice(0,10); //return YYYY-MM-DD

Exemples d'extraits:

console.log("1) "+  new Date().toDateString());
console.log("2) "+  new Date().toISOString());
console.log("3) "+  new Date().toJSON());
console.log("4) "+  new Date().toLocaleDateString());
console.log("5) "+  new Date().toLocaleString());
console.log("6) "+  new Date().toLocaleTimeString());
console.log("7) "+  new Date().toString());
console.log("8) "+  new Date().toISOString().slice(0,10));


109
2018-04-12 09:09



Plain JavaScript est le meilleur choix pour les petits onetimers.

D'un autre côté, si vous avez besoin de plus de choses, MomentJS est une excellente solution.

Par exemple:

moment().format('YYYY-MM-DD HH:m:s');     // now() -> 2015-03-24 14:32:20
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow();        // 11 hours ago
moment().endOf('day').fromNow();          // in 13 hours

88
2017-12-24 10:15



Dans les navigateurs modernes (*), vous pouvez juste faire ceci:

var today = new Date().toLocaleDateString('en-GB', {
    day : 'numeric',
    month : 'short',
    year : 'numeric'
}).split(' ').join('-');

Sortie si exécutée aujourd'hui (24 janvier 2016):

'24-Jan-2016'

(*)  Selon MDN, "navigateurs modernes" signifie Chrome 24+, Firefox 29+, Internet Explorer 11, Edge 12+, Opera 15+ et Safari construction nocturne.


80
2018-01-24 21:09



Vous devriez jeter un oeil à date.js. Il ajoute de nombreuses aides pratiques pour travailler avec des dates, par exemple, dans votre cas:

var date = Date.parse('2010-08-10');
console.log(date.toString('dd-MMM-yyyy'));

Commencer: http://www.datejs.com/2007/11/27/getting-started-with-datejs/


48
2017-12-30 08:10