Page 1 of 1
triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Mon Feb 13, 2017 10:14 am
by Gerardo
Buen dia necesito un triguer que al ser ejecutado me ingrese en la base e PM el valor del calculo de dias de dos fechas muchas gracias.
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Mon Feb 13, 2017 10:55 am
by amosbatto
Para conseguir el numero de dias entre dos fechas, tienes que convertirlas a timestamps y subtraerlas. Timestamps estan en segundos, entonces hay que dividir por 24*60*60 para conseguir el numero de dias.
Code: Select allif (isset(@@fecha1) and !empty(@@fecha1) and isset(@@fecha2) and !empty(@@fecha2)) {
$fecha1 = strtotime(@@fecha1);
$fecha2 = strtotime(@@fecha2);
$dias = ($fecha2 - $fecha1) / (24*60*60);
$sql = "INSERT INTO PMT_MITABLA (CAMPOX, CAMPOY, CAMPO_DIAS) VALUES ('A', 'B', $dias)";
executeQuery($sql);
}
Si quieres rondear el numero de dias al un intero, puedes usar round():
Si quieres calcular el numero de dias sin incluir la hora en el calculo, puedes quitar la hora de los datetimes con substr().
Code: Select allif (isset(@@fecha1) and !empty(@@fecha1) and isset(@@fecha2) and !empty(@@fecha2)) {
$fecha1 = strtotime( substr(@@fecha1, 0, 10) );
$fecha2 = strtotime( substr(@@fecha2, 0, 10) );
$dias = (int) (($fecha2 - $fecha1) / (24*60*60));
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Mon Feb 13, 2017 1:23 pm
by Gerardo
Muchas gracias por su pronta respuesta!!
en caso de que la fechas que quiero restar sean la fecha actual - la fecha de inicio de año como ser 1/1/2017
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Mon Feb 13, 2017 1:33 pm
by Gerardo
Sin extraerlas de un date time sino asi en duro la fecha actual menos la fecha inicial del año, hacer el calculo de los dias para insertarlo a la bd asi cuando aparezca la tabla ya este acualizado el registro de dias.
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Mon Feb 13, 2017 4:13 pm
by amosbatto
Este código calcula el número de días desde el comienzo del año actual:
Code: Select all$hoy = strtotime(date("Y-m-d"));
$anoNuevo = strtotime(date("Y-01-01"));
$diasDiferencia = ($hoy - $anoNuevo) / (24*60*60);
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Mon Feb 13, 2017 7:00 pm
by Gerardo
Muchas Gracias!!!
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Mon Jan 22, 2018 12:58 pm
by milagrosmaria16
Buenos días,
Tengo una pregunta: Yo quisiera restar fechas también pero sin contar sabado y domingos, tenia este codigo pero no me funciona
Code: Select all//Resta entre fechas sin contar sab y dom
function cuentaFindes(){
var inicio = new Date(datDisVac); //Fecha inicial
var fin = new Date(datHasta); //Fecha final
var timeDiff = Math.abs(fin.getTime() - inicio.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); //Días entre las dos fechas
var cuentaFinde = 0; //Número de Sábados y Domingos
var array = new Array(diffDays);
for (var i=0; i < diffDays; i++)
{
//0 => Domingo - 6 => Sábado
if (inicio.getDay() == 1 || inicio.getDay() == 5) {
cuentaFinde++;
}
inicio.setDate(inicio.getDate() + 1);
}
return cuentaFinde;
}
Lo estaba usando en la opción FORMULA en el formulario para que el resultado se muestre en un campo.
Si me pudieras ayudar sería genial.
Muchísimas gracias.
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Wed Jan 24, 2018 12:47 am
by amosbatto
Creo que tu codigo de JavaScript debe funcionar. Si sabes como usarlo en tu DynaForm, debes publicar el archivo .json de tu Dynaform.
En PHP es más facil:
Code: Select allfunction number_of_working_days($startDate, $endDate) {
$workingDays = 0;
$startTimestamp = strtotime($startDate);
$endTimestamp = strtotime($endDate);
for ($i = $startTimestamp; $i <= $endTimestamp; $i = $i + (60 * 60 * 24)) {
if (date("N", $i) <= 5) $workingDays = $workingDays + 1;
}
return $workingDays;
}
Ver:
https://stackoverflow.com/questions/450 ... tes-in-php
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Wed Jan 24, 2018 1:28 am
by amosbatto
Aca es un DynaForm que demuestra como calcular el numero de días entre fechas sin contar los sabados y domingos:
(5.36 KiB) Downloaded 575 times
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Thu Jan 25, 2018 11:53 am
by milagrosmaria16
Muchas gracias!!!!!!!!!!!!!!!
Re: triguer para buscar los dias entre dos fechas para insertarlo a una bd de pm
Posted: Wed Jun 10, 2020 6:37 pm
by ksbarrientosn
I am using this trigger and I placed it after dynaform but I do not get the count of days
if (isset(@@fecha_solicitud) and !empty(@@fecha_solicitud) and isset(@@fecha_observacion) and !empty(@@fecha_observacion)) {
$fecha1 = strtotime(@@fecha_solicitud);
$fecha2 = strtotime(@@fecha_observacion);
$dias = ($fecha2 - $fecha1) / (24*60*60);
$sql = "INSERT INTO PMT_VENTANILLA_UNICA (ConteoDias1) VALUES ($dias)";
executeQuery($sql);
};