web-dev-qa-db-fra.com

Obtenir la date actuelle au format JJ-Lun-AAAA en JavaScript/Jquery

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".

23
Tushar

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

47
Ahmad

Utilisez la bibliothèque Moment.js http://momentjs.com/ Cela vous évitera BEAUCOUP de problèmes.

moment().format('DD-MMM-YYYY');
17
techouse

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);

7
Jerome Anthony

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")
2
Indra

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"
1
Vince V.
const date = new Date();

date.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }))
0
Sakshi Nagpal
/*
  #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;
}
0
gtzinos