Bueno hola que tal lo que estoy haciendo es un input date con la fecha diaria y como maximo hasta un mes, el problema que cuando extraego el valor del dia me resta 2 dias y 1 mes es decir si yo escojo 4 de noviembre me muestra 2 de octubre en lugar de 4 de noviembre y en mi input si aparece 04/11/2020, pero me muestra lo dicho
Este es mi input que me da los resultados que quiero con php.
<input type="date" id="fecha_1" min="<?php echo $fecha_hoy; ?>" max="<?php echo $fecha_fin; ?>" style="padding: 7px;background: #91ffa4;border: 2px solid #509a5d;"/>
date_default_timezone_set('America/Mexico_City');
$fecha_hoy = date("Y-m-d");
$fecha_fin = date("Y-m-d",strtotime($fecha_hoy."+ 1 month"));
y acá mi javascript que me muestra lo que les menciono
var dia = new Date($("#fecha_1").val()).getDay();
var mes = new Date($("#fecha_1").val()).getMonth();
var año = new Date($("#fecha_1").val()).getFullYear();
document.getElementById("txt_cita").innerText = "Has selecionado el dia: " +dias[dia]+" "+dia+" de "+meses[mes]+" del "+año+" Hora por confirmar..(Selecione una horario disponible)";
Saludos,
Hay que seguir cierto estándar para construir una fecha con new Date("texto"), tienes que seguir el formato de EEUU: mes-día-año, Ej.: Para el 04 de noviembre del 2020:
new Date("11-04-2020")
// Wed Nov 04 2020 00:00:00 GMT-0500 (hora estándar de Colombia)
new Date("2020-04-11")
// Fri Apr 10 2020 19:00:00 GMT-0500 (hora estándar de Colombia)
Cita de: EdePC en 4 Noviembre 2020, 19:47 PM
Saludos,
Hay que seguir cierto estándar para construir una fecha con new Date("texto"), tienes que seguir el formato de EEUU: mes-día-año, Ej.: Para el 04 de noviembre del 2020:
new Date("11-04-2020")
// Wed Nov 04 2020 00:00:00 GMT-0500 (hora estándar de Colombia)
new Date("2020-04-11")
// Fri Apr 10 2020 19:00:00 GMT-0500 (hora estándar de Colombia)
Ya lo hice con el formato que me pasaste lo hice manualmente y sigue igual si escojo 4 de noviembre me muestra, 3 de noviembre.
var string_fecha = $("#fecha_1").val().substring(5,7)+"-"+$("#fecha_1").val().substring(8,10)+"-"+$("#fecha_1").val().substring(0,4);
var dia = new Date(string_fecha).getDay();
console.log('Dia: '+dia + " - Fecha:"+string_fecha);
//Imprime Dia: 3 - Fecha:11-04-2020
console.log("Valor:"+$("#fecha_1").val());
//Imprime Valor:2020-11-04
Nop, getDay() devuelve el día de la semana, desde 0 para domingo a 6 para sábado, como vi que estabas utilizando un array dias[dia] supongo que estás usando uno del tipo:
var dias = [ "domingo", "lunes", "martes", "miercoles", "jueves", "viernes", "sabado" ]
Para obtener el día del mes tienes que usar getDate(), el cual devuelve un número desde 1 a 30 o 31 dependiendo del mes, es decir, para tu último ejemplo necesitas:
// Ej. para la fecha 05 de noviembre del 2020
new Date("11-05-2020").getDate()
// 5