Tengo un objeto Date actual que debe incrementarse en un día usando el objeto Date de JavaScript. Tengo el siguiente código en su lugar:
var ds = stringFormat("{day} {date} {month} {year}", {
day: companyname.i18n.translate("day", language)[date.getUTCDay()],
date: date.getUTCDate(),
month: companyname.i18n.translate("month", language)[date.getUTCMonth()],
year: date.getUTCFullYear()
});
¿Cómo puedo agregarle un día?
Agregué +1 a getUTCDay()
y, getUTCDate()
pero no muestra "Domingo" day
, lo que espero que suceda.
javascript
frenético
fuente
fuente
date: (date.getUTCDate()+1)
No funciona (funciona para mí)? Es posible que haya un conflicto de nomenclatura condate
(como Fecha () - Objeto y como Clave de objeto. ¿Ha intentado llamar a la Fecha () - Objeto diferente?7 Apr
que necesitas (lo que me es 'agregar al día siguiente'), es elSunday
. Recuerde agregar+1
ambos enday:
ydate:
(o, como menciona la respuesta actual, antes).Respuestas:
Para agregar un día a un objeto de fecha:
var date = new Date(); // add a day date.setDate(date.getDate() + 1);
fuente
var a = new Date("2013-03-10T00:00:00.000Z");
a.setDate(a.getDate() + 1);
a.toISOString();
es"2013-03-10T23:00:00.000Z"
. Este es un caso sutil en el que la función anterior no me funcionó.a.setUTCDate(a.getUTCDate() + 1);
<- que funciona con fechas zulúes.En mi humilde opinión, la mejor manera es simplemente agregar un día completo en milisegundos, dependiendo de cómo factorices tu código, puede estropearse si estás en el último día del mes.
por ejemplo, el 28 de febrero o el 31 de marzo.
Aquí hay un ejemplo de cómo lo haría:
var current = new Date(); //'Mar 11 2015' current.getTime() = 1426060964567 var followingDay = new Date(current.getTime() + 86400000); // + 1 day in ms followingDay.toLocaleDateString();
En mi opinión, esto asegura la precisión
aquí hay otro ejemplo no me gusta que puede funcionar para usted pero no tan limpio esa dosis de la anterior
var today = new Date('12/31/2015'); var tomorrow = new Date(today); tomorrow.setDate(today.getDate()+1); tomorrow.toLocaleDateString();
en mi humilde opinión, esto === 'POOP'
Algunos de ustedes han tenido quejas sobre mi enfoque de milisegundos debido al horario de verano. Así que voy a criticar esto. Primero, algunos países y estados no tienen horario de verano. Segundo Agregar exactamente 24 horas es un día completo. Si la dosis del número de fecha no cambia una vez al año, pero luego se corrige 6 meses después, no veo ningún problema allí. Pero con el propósito de ser definitivo y tener que lidiar con el malvado Date () lo he pensado detenidamente y ahora odio a Date. Entonces este es mi nuevo enfoque
var dd = new Date(); // or any date and time you care about var dateArray = dd.toISOString().split('T')[0].split('-').concat( dd.toISOString().split('T')[1].split(':') ); // ["2016", "07", "04", "00", "17", "58.849Z"] at Z
¡Ahora viene la parte divertida!
var date = { day: dateArray[2], month: dateArray[1], year: dateArray[0], hour: dateArray[3], minutes: dateArray[4], seconds:dateArray[5].split('.')[0], milliseconds: dateArray[5].split('.')[1].replace('Z','') }
ahora tenemos nuestro Objeto de Fecha Internacional Válido Oficial claramente escrito en el meridiano Zulú. Ahora para cambiar la fecha
dd.setDate(dd.getDate()+1); // this gives you one full calendar date forward tomorrow.setDate(dd.getTime() + 86400000);// this gives your 24 hours into the future. do what you want with it.
fuente
var dte = Date.parse('2015-11-01'); console.log(dte); dte.setTime(dte.getTime() + 86400000 ); console.log(dte);
Si desea agregar un día (24 horas) a la fecha y hora actual, puede agregar milisegundos como este:
new Date(Date.now() + ( 3600 * 1000 * 24))
fuente
int days = 1; var newDate = new Date(Date.now() + days*24*60*60*1000);
CodePen
var days = 2; var newDate = new Date(Date.now()+days*24*60*60*1000); document.write('Today: <em>'); document.write(new Date()); document.write('</em><br/> New: <strong>'); document.write(newDate);
fuente
Inspirado por jpmottin en esta pregunta , aquí está el código de una línea:
var dateStr = '2019-01-01'; var days = 1; var result = new Date(new Date(dateStr).setDate(new Date(dateStr).getDate() + days)); document.write('Date: ', result); // Wed Jan 02 2019 09:00:00 GMT+0900 (Japan Standard Time) document.write('<br />'); document.write('Trimmed Date: ', result.toISOString().substr(0, 10)); // 2019-01-02
Espero que esto ayude
fuente
currentDay = '2019-12-06'; currentDay = new Date(currentDay).add(Date.DAY, +1).format('Y-m-d');
fuente