Lorsque nous appelons getMonth()
et getDate()
sur l'objet date
, nous obtenons le single digit number
. Par exemple :
Pour january
, il affiche 1
, mais je dois l’afficher sous la forme 01
. Comment faire ça?
("0" + this.getDate()).slice(-2)
pour la date, et similaire:
("0" + (this.getMonth() + 1)).slice(-2)
pour le mois.
Si vous voulez un format comme "AAAA-MM-JJTHH: mm: ss", alors ceci pourrait être plus rapide:
var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ
Ou le format date/heure MySQL couramment utilisé "AAAA-MM-JJ HH: mm: ss":
var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');
J'espère que ça aide
Exemple pour le mois:
function getMonth(date) {
var month = date.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
Vous pouvez également étendre l'objet Date
avec cette fonction:
Date.prototype.getMonthFormatted = function() {
var month = this.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
La meilleure façon de faire est de créer votre propre formateur simple (comme ci-dessous):
getDate()
renvoie le jour du mois (de 1 à 31)getMonth()
renvoie le mois (de 0 à 11) <base zéro, 0 = janvier, 11 = décembregetFullYear()
renvoie l'année (quatre chiffres) <ne pas utiliser getYear()
function formatDateToString(date){
// 01, 02, 03, ... 29, 30, 31
var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
// 01, 02, 03, ... 10, 11, 12
var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
// 1970, 1971, ... 2015, 2016, ...
var yyyy = date.getFullYear();
// create the format you want
return (dd + "-" + MM + "-" + yyyy);
}
Pourquoi ne pas utiliser padStart
?
var d = new Date();
d.getMonth().toString().padStart(2, "0");
d.getDate().toString().padStart(2, "0");
Cela retournera toujours 2 chiffres, même si le mois ou le jour est inférieur à 10, par exemple. Le 6 septembre, les retours 09 et 06 respectivement.
Ce qui suit est utilisé pour convertir le format de date db2 i.e AAAA-MM-JJ à l’aide de l’opérateur ternaire.
var currentDate = new Date();
var twoDigitMonth=((currentDate.getMonth()+1)>=10)? (currentDate.getMonth()+1) : '0' + (currentDate.getMonth()+1);
var twoDigitDate=((currentDate.getDate())>=10)? (currentDate.getDate()) : '0' + (currentDate.getDate());
var createdDateTo = currentDate.getFullYear() + "-" + twoDigitMonth + "-" + twoDigitDate;
alert(createdDateTo);
function monthFormated(date) {
//If date is not passed, get current date
if(!date)
date = new Date();
month = date.getMonth();
// if month 2 digits (9+1 = 10) don't add 0 in front
return month < 9 ? "0" + (month+1) : month+1;
}
function monthFormated() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
Juste un autre exemple, presque un paquebot.
var date = new Date();
console.log( (date.getMonth() < 9 ? '0': '') + (date.getMonth()+1) );
En utilisant Moment.js cela peut être fait comme ça:
moment(new Date(2017, 1, 1)).format('DD') // day
moment(new Date(2017, 1, 1)).format('MM') // month
C'était ma solution:
function leadingZero(value) {
if (value < 10) {
return "0" + value.toString();
}
return value.toString();
}
var targetDate = new Date();
targetDate.setDate(targetDate.getDate());
var dd = targetDate.getDate();
var mm = targetDate.getMonth() + 1;
var yyyy = targetDate.getFullYear();
var dateCurrent = leadingZero(mm) + "/" + leadingZero(dd) + "/" + yyyy;
Pas une réponse, mais voici comment obtenir le format de date requis dans une variable
function setDateZero(date){
return date < 10 ? '0' + date : date;
}
var curr_date = ev.date.getDate();
var curr_month = ev.date.getMonth() + 1;
var curr_year = ev.date.getFullYear();
var thisDate = curr_year+"-"+setDateZero(curr_month)+"-"+setDateZero(curr_date);
J'espère que cela t'aides!
Si cela pouvait me permettre de gagner du temps, je cherchais:
YYYYMMDD
pour aujourd'hui, et s'entend avec:
const dateDocumentID = new Date()
.toISOString()
.substr(0, 10)
.replace(/-/g, '');
La méthode new Date().getMonth()
renvoie le mois sous forme de nombre (0-11)
Vous pouvez facilement obtenir le numéro de mois correct avec cette fonction.
function monthFormatted() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
Astuce de MDN :
function date_locale(thisDate, locale) {
if (locale == undefined)
locale = 'fr-FR';
// set your default country above (yes, I'm french !)
// then the default format is "dd/mm/YYY"
if (thisDate == undefined) {
var d = new Date();
} else {
var d = new Date(thisDate);
}
return d.toLocaleDateString(locale);
}
var thisDate = date_locale();
var dayN = thisDate.slice(0, 2);
var monthN = thisDate.slice(3, 5);
console.log(dayN);
console.log(monthN);
Je voudrais faire ceci:
var d = new Date('January 13, 2000');
var s = d.toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' });
console.log(s); // prints 01/13/2000
function GetDateAndTime(dt) {
var arr = new Array(dt.getDate(), dt.getMonth(), dt.getFullYear(),dt.getHours(),dt.getMinutes(),dt.getSeconds());
for(var i=0;i<arr.length;i++) {
if(arr[i].toString().length == 1) arr[i] = "0" + arr[i];
}
return arr[0] + "." + arr[1] + "." + arr[2] + " " + arr[3] + ":" + arr[4] + ":" + arr[5];
}
Et une autre version ici https://jsfiddle.net/ivos/zcLxo8oy/1/ , espérons être utile.
var dt = new Date(2016,5,1); // just for the test
var separator = '.';
var strDate = (dt.getFullYear() + separator + (dt.getMonth() + 1) + separator + dt.getDate());
// end of setup
strDate = strDate.replace(/(\b\d{1}\b)/g, "0$1")
Les réponses ici ont été utiles, mais j'ai besoin de plus que cela: pas seulement mois, date, mois, heures et secondes, pour un nom par défaut.
Il est intéressant de noter que si "0" était requis pour tous les éléments ci-dessus, "+1" n'était requis que pour un mois, pas les autres.
À titre d'exemple:
("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed
("0" + (d.getHours())).slice(-2) // Note: +1 is not needed
si vous voulez que la fonction getDate () renvoie la date sous la forme 01 au lieu de 1, voici le code correspondant .... Supposons que la date du jour est le 01-11-2018
var today = new Date();
today = today.getFullYear()+ "-" + (today.getMonth() + 1) + "-" + today.getDate();
console.log(today); //Output: 2018-11-1
today = today.getFullYear()+ "-" + (today.getMonth() + 1) + "-" + ((today.getDate() < 10 ? '0' : '') + today.getDate());
console.log(today); //Output: 2018-11-01
var net = require('net')
function zeroFill(i) {
return (i < 10 ? '0' : '') + i
}
function now () {
var d = new Date()
return d.getFullYear() + '-'
+ zeroFill(d.getMonth() + 1) + '-'
+ zeroFill(d.getDate()) + ' '
+ zeroFill(d.getHours()) + ':'
+ zeroFill(d.getMinutes())
}
var server = net.createServer(function (socket) {
socket.end(now() + '\n')
})
server.listen(Number(process.argv[2]))
Ma solution:
function addLeadingChars(string, nrOfChars, leadingChar) {
string = string + '';
return Array(Math.max(0, (nrOfChars || 2) - string.length + 1)).join(leadingChar || '0') + string;
}
Usage:
var
date = new Date(),
month = addLeadingChars(date.getMonth() + 1),
day = addLeadingChars(date.getDate());
jsfiddle: http://jsfiddle.net/8xy4Q/1/
Si vous cochez inférieur à 1, vous ne devez pas créer de nouvelle fonction pour cela. Il suffit d’affecter une variable entre parenthèses et de la renvoyer avec l’opérateur ternaire.
(m = new Date().getMonth() + 1) < 10 ? `0${m}` : `${m}`
Je voulais faire quelque chose comme ça et c'est ce que j'ai fait
p.s. Je sais qu'il y a une bonne réponse en haut, mais je voulais juste ajouter quelque chose de ma part ici
const todayIs = async () =>{
const now = new Date();
var today = now.getFullYear()+'-';
if(now.getMonth() < 10)
today += '0'+now.getMonth()+'-';
else
today += now.getMonth()+'-';
if(now.getDay() < 10)
today += '0'+now.getDay();
else
today += now.getDay();
return today;
}