104 votes

Comment obtenir une année à 2 chiffres avec Javascript ?

J'essaie de trouver un code javascript qui écrira la date actuelle dans le format suivant : mmddyy.

Tout ce que j'ai trouvé utilise des années à 4 chiffres et j'ai besoin de 2 chiffres.

195voto

abc123 Points 3550

La réponse spécifique à cette question se trouve dans cette seule ligne ci-dessous :

//pull the last two digits of the year
//logs to console
//creates a new date object (has the current date and time by default)
//gets the full year from the date object (currently 2017)
//converts the variable to a string
//gets the substring backwards by 2 characters (last two characters)    
console.log(new Date().getFullYear().toString().substr(-2));

Exemple de formatage de la date et de l'heure complètes, fonction unique (MMddyy) : jsFiddle

JavaScript :

//A function for formatting a date to MMddyy
function formatDate(d)
{
    //get the month
    var month = d.getMonth();
    //get the day
    //convert day to string
    var day = d.getDate().toString();
    //get the year
    var year = d.getFullYear();

    //pull the last two digits of the year
    year = year.toString().substr(-2);

    //increment month by 1 since it is 0 indexed
    //converts month to a string
    month = (month + 1).toString();

    //if month is 1-9 pad right with a 0 for two digits
    if (month.length === 1)
    {
        month = "0" + month;
    }

    //if day is between 1-9 pad right with a 0 for two digits
    if (day.length === 1)
    {
        day = "0" + day;
    }

    //return the string "MMddyy"
    return month + day + year;
}

var d = new Date();
console.log(formatDate(d));

Formatage de la date complète Exemple, fonctions multiples (MMddyy) :

// function getMonth with 1 parameter expecting date
// This function returns a string of type MM (example: 05 = May)
function getMonth(d) {
    //get the month
    var month = d.getMonth();

    //increment month by 1 since it is 0 indexed
    //converts month to a string
    month = (month + 1).toString();

    //if month is 1-9 pad right with a 0 for two digits
    if (month.length === 1)
    {
        month = "0" + month;
    }

    return month;
}

// function getDay with 1 parameter expecting date
// This function returns a string of type dd (example: 09 = The 9th day of the month)
function getDay(d) {
    //get the day
    //convert day to string
    var day = d.getDate().toString();

      //if day is between 1-9 pad right with a 0 for two digits
    if (day.length === 1)
    {
        day = "0" + day;
    }

    return day;
}

// function getYear with 1 parameter expecting date
// This function returns the year in format yy (example: 21 = 2021)
function getYear(d) {
    //get the year
    var year = d.getFullYear();

    //pull the last two digits of the year
    year = year.toString().substr(-2);

    return year;
}

//A function for formatting a date to MMddyy
function formatDate(d)
{
    //return the string "MMddyy"
    return getMonth(d) + getDay(d) + getYear(d);
}

var d = new Date();
console.log(formatDate(d));

55voto

Martin Linux Points 852

Étant donné un objet de date :

date.getFullYear().toString().substr(2,2);

Il renvoie le nombre sous forme de chaîne. Si vous le voulez sous forme d'entier, il suffit de le placer dans la balise parseInt() fonction :

var twoDigitsYear = parseInt(date.getFullYear().toString().substr(2,2), 10);

Exemple avec l'année en cours sur une seule ligne :

var twoDigitsCurrentYear = parseInt(new Date().getFullYear().toString().substr(2,2));

15voto

var d = new Date();
var n = d.getFullYear();

Oui, n vous donnera l'année à 4 chiffres, mais vous pouvez toujours utiliser substring ou quelque chose de similaire pour diviser l'année, vous donnant ainsi seulement deux chiffres :

var final = n.toString().substring(2);

Cela vous donnera les deux derniers chiffres de l'année (2013 deviendra 13, etc...)

S'il existe une meilleure méthode, j'espère que quelqu'un la publiera ! C'est le seul moyen auquel j'ai pensé. Faites-nous savoir si ça marche !

11voto

VirtualTroll Points 1705
var currentYear =  (new Date()).getFullYear();   
var twoLastDigits = currentYear%100;

var formatedTwoLastDigits = "";

if (twoLastDigits <10 ) {
    formatedTwoLastDigits = "0" + twoLastDigits;
} else {
    formatedTwoLastDigits = "" + twoLastDigits;
}

7voto

Guido Preite Points 12814

Une autre version :

var yy = (new Date().getFullYear()+'').slice(-2);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X