es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comparar las fechas entre las estaciones del siguiente año.

Tengo 3 temporadas (así es como cobra el cliente),

la temporada 1 comienza el 1 de abril y termina el 31 de julio (2021-04-01 al 2021-07-31)

la temporada 2 comienza el 1 de agosto y termina el 30 de noviembre (2021-08-01 al 2021-11-30)

la temporada 3 comienza el 1 de diciembre y termina el 31 de marzo (2021-12-01 al 2022-03-31

La temporada 3 abarca desde un año hasta el próximo (diciembre a marzo)

Las fechas son de la base de datos en este formato 2021-11-03. Reemplazo el año de las temporadas con el año de inicio y fin de la reserva con $BSyear y $BEyear.

A continuación, tengo código para las temporadas más un año para otros cálculos, ya que solo necesito ir un año al futuro.

Mi problema es que puedo hacer que funcionen las temporadas 1 y 2, pero tengo un problema con la temporada 3. Creo que puede ser porque cruza de un año a otro, pero no puedo entender qué está causando el problema.

¿Mis cálculos con >= se hacen correctamente o entran en conflicto entre sí? El cálculo de la temporada 3 está al final.

“` //RESERVA DE INICIO
$BS =”2021-06-02″;//la fecha de inicio de la reserva se convertirá en una VARIABLE DE FORMULARIO ENVIADA AQUÍ
list($BSyear, $BSmonth, $BSday) = explode(“-“, $BS);
$bookingstart = $BSyear.’-‘.$BSmonth.’-‘.$BSday;
$booking
start = strtotime($booking_start);

    //RESERVA DE FINALIZACIÓN
$BE ="2021-06-04";//la fecha de finalización de la reserva se convertirá en una VARIABLE DE FORMULARIO ENVIADA AQUÍ
list($BEyear, $BEmonth, $BEday) = explode("-", $BE);
$booking_end = $BEyear.'-'.$BEmonth.'-'.$BEday;
$booking_end = strtotime($booking_end);


//...........INICIO: Fechas de la temporada 1, fila 1...........\\

$id = 1;

$sql = "SELECT * FROM season_switch WHERE id = ?";
$stmt = $conn->prepare($sql); 
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();


if ($result->num_rows > 0) {  


//datos de salida de la fila
while($row = $result->fetch_assoc()) {

    $SS1 .= $row[
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, puedo decir que el código de arriba está utilizando PHP para determinar la temporada y el precio de la temporada según las fechas de inicio y finalización de la reserva. Hay tres temporadas: temporada 1, temporada 2 y temporada 3. La temporada 1 comienza el 1 de abril y finaliza el 31 de julio, la temporada 2 comienza el 1 de agosto y finaliza el 30 de noviembre, y la temporada 3 comienza el 1 de diciembre y finaliza el 31 de marzo.

    El código extrae las fechas de inicio y finalización de la reserva, así como las fechas de inicio y finalización de cada temporada, desde una base de datos. Luego convierte estas fechas en marcas de tiempo para realizar comparaciones.

    Hay tres secciones en el código que verifican si la reserva cae completamente en una de las tres temporadas. Si es así, calcula el número de días e imprime el precio para esa temporada. La temporada correspondiente se almacena en la variable $low_mid_peak_switch.

    Cada temporada se calcula con dos marcas de tiempo: una para el comienzo de la temporada y otra para el final de la temporada. Para la temporada 3, como abarca dos años, hay variables adicionales para manejar el caso en que la reserva se extiende hasta el próximo año. Las marcas de tiempo para la temporada 1 y la temporada 2 se calculan utilizando el año de finalización de la reserva, mientras que para la temporada 3 se utiliza el año de inicio.

    El código parece ser correcto para las temporadas 1 y 2, y el problema está en la temporada 3. Sin embargo, sin conocer el problema exacto, es difícil resolver el problema.

Comments are closed.