Lorsque nous appelons getMonth()et getDate()sur un dateobjet, nous obtenons le single digit number. Par exemple :
Pour january, il s'affiche 1, mais je dois l'afficher en tant que 01. Comment faire ça?
Lorsque nous appelons getMonth()et getDate()sur un dateobjet, nous obtenons le single digit number. Par exemple :
Pour january, il s'affiche 1, mais je dois l'afficher en tant que 01. Comment faire ça?
Réponses:
("0" + this.getDate()).slice(-2)
pour la date, et similaire:
("0" + (this.getMonth() + 1)).slice(-2)
pour le mois.
function addZ(n){return n<10? '0'+n:''+n;}est un peu plus générique.
getMonthet getDaterenvoie des nombres, pas des chaînes. Et si la compatibilité avec Strings est requise, alors '0' + Number(n)fera le travail.
Si vous voulez un format comme "AAAA-MM-JJTHH: 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 datetime 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 un Dateobjet avec une telle 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 le faire est de créer votre propre formateur simple (comme ci-dessous):
getDate()retourne le jour du mois (de 1-31)
getMonth()retourne le mois (de 0-11) <base zéro, 0 = janvier, 11 = décembre
getFullYear() retourne l'année (quatre chiffres) < ne pas utilisergetYear()
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 dt = new Date();
year = dt.getYear() + 1900;
month = (dt.getMonth() + 1).toString().padStart(2, "0");
day = dt.getDate().toString().padStart(2, "0");
console.log(year + '/' + month + '/' + day);
Cela renverra toujours des nombres à 2 chiffres même si le mois ou le jour est inférieur à 10.
Remarques:
getYear()renvoie l'année à partir de 1900 et ne nécessite pas padStart.getMonth() renvoie le mois de 0 à 11.
getDate() renvoie le jour de 1 à 31.
07et nous n'avons donc pas besoin d'ajouter 1 avant de remplir la chaîne.Ce qui suit est utilisé pour convertir le format de date db2, c'est-à-dire AAAA-MM-JJ 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);
Je ferais 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
Juste un autre exemple, presque un paquebot.
var date = new Date();
console.log( (date.getMonth() < 9 ? '0': '') + (date.getMonth()+1) );
Si cela pouvait me faire gagner du temps, je cherchais à obtenir:
YYYYMMDD
pour aujourd'hui, et s'entendait avec:
const dateDocumentID = new Date()
.toISOString()
.substr(0, 10)
.replace(/-/g, '');
DD/MM/YY, je suis allé ànew Date().toISOString().substr(0, 10).split('-').reverse().map(x => x.substr(0, 2)).join('/')
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;
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
Pas une réponse mais voici comment obtenir le format de date dont j'ai besoin 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!
Conseil 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);
new Date().getMonth() retourne le mois sous forme de nombre (0-11)
Vous pouvez facilement corriger le numéro du mois avec cette fonction.
function monthFormatted() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
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 le mois, la date, le mois, les heures et les secondes, pour un nom par défaut.
Fait intéressant, bien que le préfixe "0" soit nécessaire pour tout ce qui précède, "+ 1" n'était nécessaire que pour le mois, pas pour les autres.
Comme exemple:
("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed
("0" + (d.getHours())).slice(-2) // Note: +1 is not needed
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/
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]))
si vous voulez que la fonction getDate () retourne la date à 01 au lieu de 1, voici le code pour cela .... Supposons que la date d'aujourd'hui 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
Je voulais faire quelque chose comme ça et c'est ce que j'ai fait
ps je sais qu'il y a de bonnes réponses en haut, mais je voulais juste ajouter quelque chose de moi 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;
}
Si vous cochez moins de 10 , vous ne devez pas créer de nouvelle fonction pour cela. Attribuez simplement une variable entre parenthèses et renvoyez-la avec l'opérateur ternaire.
(m = new Date().getMonth() + 1) < 10 ? `0${m}` : `${m}`
currentDate(){
var today = new Date();
var dateTime = today.getFullYear()+'-'+
((today.getMonth()+1)<10?("0"+(today.getMonth()+1)):(today.getMonth()+1))+'-'+
(today.getDate()<10?("0"+today.getDate()):today.getDate())+'T'+
(today.getHours()<10?("0"+today.getHours()):today.getHours())+ ":" +
(today.getMinutes()<10?("0"+today.getMinutes()):today.getMinutes())+ ":" +
(today.getSeconds()<10?("0"+today.getSeconds()):today.getSeconds());
return dateTime;
},
Je vous suggère d'utiliser une autre bibliothèque appelée Moment https://momentjs.com/
De cette façon, vous pouvez formater la date directement sans avoir à faire de travail supplémentaire
const date = moment().format('YYYY-MM-DD')
// date: '2020-01-04'
Assurez-vous d'importer le moment également pour pouvoir l'utiliser.
yarn add moment
# to add the dependency
import moment from 'moment'
// import this at the top of the file you want to use it in
J'espère que cela vous aidera: D
$("body").delegate("select[name='package_title']", "change", function() {
var price = $(this).find(':selected').attr('data-price');
var dadaday = $(this).find(':selected').attr('data-days');
var today = new Date();
var endDate = new Date();
endDate.setDate(today.getDate()+parseInt(dadaday));
var day = ("0" + endDate.getDate()).slice(-2)
var month = ("0" + (endDate.getMonth() + 1)).slice(-2)
var year = endDate.getFullYear();
var someFormattedDate = year+'-'+month+'-'+day;
$('#price_id').val(price);
$('#date_id').val(someFormattedDate);
});