sumar - ¿Cómo obtengo el mes y la fecha de JavaScript en formato de 2 dígitos?
restar meses fecha javascript (20)
¿Por qué no usar padStart
?
var d = new Date();
d.getMonth().toString().padStart(2, "0");
d.getDate().toString().padStart(2, "0");
Esto siempre devolverá números de 2 dígitos, incluso si el mes o el día es menor que 10, por ejemplo, el 6 de septiembre devolverá 09 y 06 respectivamente.
Cuando llamamos a getMonth()
y getDate()
en objeto de date
, obtendremos el single digit number
. Por ejemplo :
Para january
, muestra 1
, pero necesito mostrarlo como 01
. ¿Como hacer eso?
Consejo 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);
Ejemplo para el mes:
function getMonth(date) {
var month = date.getMonth() + 1;
return month < 10 ? ''0'' + month : '''' + month; // ('''' + month) for string result
}
También puede extender el objeto Date
con dicha función:
Date.prototype.getMonthFormatted = function() {
var month = this.getMonth() + 1;
return month < 10 ? ''0'' + month : '''' + month; // ('''' + month) for string result
}
Esta fue mi solución:
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;
La mejor manera de hacerlo es crear su propio formateador simple (como se muestra a continuación):
getDate()
devuelve el día del mes (de 1 a 31)
getMonth()
devuelve el mes (de 0 a 11) < basado en cero, 0 = enero, 11 = diciembre
getFullYear()
devuelve el año (cuatro dígitos) < no use 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);
}
Las respuestas aquí fueron útiles, sin embargo, necesito más que eso: no solo mes, fecha, mes, horas y segundos, para un nombre predeterminado.
Curiosamente, aunque antes de "0" era necesario para todo lo anterior, "+ 1" solo era necesario durante un mes, no otros.
Como ejemplo:
("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed
("0" + (d.getHours())).slice(-2) // Note: +1 is not needed
Lo siguiente se utiliza para convertir el formato de fecha db2, es decir, YYYY-MM-DD utilizando el operador ternario
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);
Mi solución:
function addLeadingChars(string, nrOfChars, leadingChar) {
string = string + '''';
return Array(Math.max(0, (nrOfChars || 2) - string.length + 1)).join(leadingChar || ''0'') + string;
}
Uso:
var
date = new Date(),
month = addLeadingChars(date.getMonth() + 1),
day = addLeadingChars(date.getDate());
jsfiddle: http://jsfiddle.net/8xy4Q/1/
No es una respuesta pero aquí es cómo obtengo el formato de fecha que requiero en una 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);
¡Espero que esto ayude!
Si desea un formato como "YYYY-MM-DDTHH: mm: ss", esto podría ser más rápido:
var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ
O el formato de fecha y hora de MySQL comúnmente usado "YYYY-MM-DD HH: mm: ss":
var date2 = new Date().toISOString().substr(0, 19).replace(''T'', '' '');
espero que esto ayude
Solo otro ejemplo, casi un trazador de líneas.
var date = new Date();
console.log( (date.getMonth() < 9 ? ''0'': '''') + (date.getMonth()+1) );
Usando Moment.js se puede hacer así:
moment(new Date(2017, 1, 1)).format(''DD'') // day
moment(new Date(2017, 1, 1)).format(''MM'') // month
Y otra versión aquí https://jsfiddle.net/ivos/zcLxo8oy/1/ , espero que sea útil.
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")
Yo haría esto:
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
new Date().getMonth()
método new Date().getMonth()
devuelve el mes como un número (0-11)
Puede obtener fácilmente el número de mes correcto con esta función.
function monthFormatted() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
("0" + this.getDate()).slice(-2)
Para la fecha, y similares:
("0" + (this.getMonth() + 1)).slice(-2)
por el mes.
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];
}
function monthFormated() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
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;
}
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]))