Je dois obtenir le format de date en javascript sous la forme 'JJ-Lun-AAAA'. Je vous avais posé une question , et cela a été marqué comme étant en double avec format de date jQuery
Mais les réponses fournies dans la question sont d'obtenir la date actuelle au format "JJ-MM-AAAA" et non "JJ-MON-AAAA" . Deuxièmement, je n'utilise pas le plugin Datepicker.
Pouvez-vous s'il vous plaît m'aider comme si obtenir la date actuelle au format "JJ-Lun-AAAA".
Il n'y a pas de format natif en javascript pour DD-Mon-YYYY
.
Vous devrez rassembler tout cela manuellement.
La réponse est inspirée de: Comment formater une date JavaScript
// Attaching a new function toShortFormat() to any instance of Date() class
Date.prototype.toShortFormat = function() {
var month_names =["Jan","Feb","Mar",
"Apr","May","Jun",
"Jul","Aug","Sep",
"Oct","Nov","Dec"];
var day = this.getDate();
var month_index = this.getMonth();
var year = this.getFullYear();
return "" + day + "-" + month_names[month_index] + "-" + year;
}
// Now any Date object can be declared
var today = new Date();
// and it can represent itself in the custom format defined above.
console.log(today.toShortFormat()); // 10-Jun-2018
Utilisez la bibliothèque Moment.js http://momentjs.com/ Cela vous évitera BEAUCOUP de problèmes.
moment().format('DD-MMM-YYYY');
Vous pouvez utiliser toLocaleDateString et rechercher un format proche de DD-mmm-AAAA (indice: 'en-GB'; il vous suffit de remplacer les espaces par '-').
const date = new Date();
const formattedDate = date.toLocaleDateString('en-GB', {
day: 'numeric', month: 'short', year: 'numeric'
}).replace(/ /g, '-');
console.log(formattedDate);
J'ai créé une fonction de format de chaîne de date personnalisée, vous pouvez l'utiliser.
var getDateString = function(date, format) {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
getPaddedComp = function(comp) {
return ((parseInt(comp) < 10) ? ('0' + comp) : comp)
},
formattedDate = format,
o = {
"y+": date.getFullYear(), // year
"M+": months[date.getMonth()], //month
"d+": getPaddedComp(date.getDate()), //day
"h+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
"H+": getPaddedComp(date.getHours()), //hour
"m+": getPaddedComp(date.getMinutes()), //minute
"s+": getPaddedComp(date.getSeconds()), //second
"S+": getPaddedComp(date.getMilliseconds()), //millisecond,
"b+": (date.getHours() >= 12) ? 'PM' : 'AM'
};
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
formattedDate = formattedDate.replace(RegExp.$1, o[k]);
}
}
return formattedDate;
};
Et maintenant, supposons que vous ayez: -
var date = "2014-07-12 10:54:11";
Donc, pour formater cette date, vous écrivez: -
var formattedDate = getDateString(new Date(date), "d-M-y")
jJ-MM-AAAA n'est qu'un des formats. Le format du plugin jquery est basé sur cette liste: http://docs.Oracle.com/javase/7/docs/api/Java/text/SimpleDateFormat.html
Testé le code suivant dans la console chrome:
test = new Date()
test.format('d-M-Y')
"15-Dec-2014"
const date = new Date();
date.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }))
/*
#No parameters
returns a date with this format DD-MM-YYYY
*/
function now()
{
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var output = (day<10 ? '0' : '') + day + "-"
+ (month<10 ? '0' : '') + month + '-'
+ d.getFullYear();
return output;
}