Quand nous appelons getMonth()
et getDate()
sur date
nous obtiendrons l'objet single digit number
. Par exemple :
Pour january
il affiche 1
mais j'ai besoin de l'afficher comme 01
. Comment faire ?
Quand nous appelons getMonth()
et getDate()
sur date
nous obtiendrons l'objet single digit number
. Par exemple :
Pour january
il affiche 1
mais j'ai besoin de l'afficher comme 01
. Comment faire ?
La tranche est intelligente, mais elle est beaucoup plus lente qu'une simple comparaison : jsperf.com/slice-vs-comparaison
@dak : Et quand cela va-t-il réellement compter ? Je doute que vous calculiez le mois des milliers de fois par seconde.
Si vous souhaitez un format comme "AAAA-MM-DDTHH:mm:ss", cela peut être plus rapide :
var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ
Ou le format de date MySQL couramment utilisé "YYYY-MM-DD HH:mm:ss" :
var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');
J'espère que cela vous aidera
C'est la solution la plus minable que j'aie trouvée. Le seul problème ici est celui du décalage du fuseau horaire.
Le décalage du fuseau horaire pourrait être pris en charge avec quelque chose comme : var date = new Date(new Date().getTime() - new Date().getTimezoneOffset()*60*1000).toISOString().substr(0,19).replace('T', ' ') ;
Praym, ton code fonctionne pour moi, mais le copier-coller devait avoir un caractère caché ou quelque chose comme ça, alors je l'ai juste tapé à la main.
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 Date
avec une telle fonction :
Date.prototype.getMonthFormatted = function() {
var month = this.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
Cela renvoie des résultats incohérents. Pour novembre et décembre, elle renvoie une chaîne de caractères et pour les autres mois, elle renvoie un nombre.
La meilleure façon de le 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) < n'utilisez pas 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);
}
Ce qui suit est utilisé pour convertir le format de date db2 c'est-à-dire YYYY-MM-DD en utilisant 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);
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.
2 votes
stackoverflow.com/questions/2998784/
0 votes
Veuillez consulter stackoverflow.com/questions/6040515/