Visualizzazione dei risultati da 1 a 7 su 7

Discussione: ciclo for con le date

  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    ciclo for con le date

    sto avendo problemi con un ciclo for per creare delle date

    in pratica se il range di date non è tra 2 mesi diversi, non ho problemi (per esempio dal 2 al 9 maggio), se invece il range dal 29 aprile al 2 maggio, il loop diventa infinito e mi crea 60 mila record nel database.

    Questo è quello che ho adesso:
    codice:
    $valida_da="2023-05-02";
    $valida_fino="2023-05-09";
    for ($data = $valida_da; $data <=$valida_fino ; $data++) {
    eseguo quello che mi serve
    }
    in questo modo fa tutto correttamente, se sostiuisco cosi' mi va in loop infinito:
    codice:
    $valida_da="2023-04-29";
    $valida_fino="2023-05-02";
    for ($data = $valida_da; $data <=$valida_fino ; $data++) {
    eseguo quello che mi serve
    }
    come mai? come posso risolvere?
    Nel database il campo data_prezzo è di tipo date

  2. #2
    Usa https://www.php.net/strtotime per convertire le stringhe in date.

    Poi cicla aggiungendo alla data di partenza i secondi presenti in un giorno e continua fino a raggiungere o superare la data di arrivo.

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Poi cicla aggiungendo alla data di partenza i secondi presenti in un giorno
    in che senso devo aggiungere i secondi presenti in un giorno?

  4. #4
    Aggiungere significa utilizzare l'operatore +
    Secondi presenti in un giorno significa 60 * 60 * 24
    Ultima modifica di filippo.toso; 26-11-2022 a 20:52

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ma con le date in quel formato va bene?

    Perche' sto provando cosi' ma continua ad andare in loop infinito

    codice:
    <?php
    $valida_da="2022-04-20";
    $valida_da=strtotime($valida_da);
    $valida_fino="2022-04-29";
    $valida_fino=strtotime($valida_fino);
    for ($data = ($valida_da+(60*60*24)); $data <=$valida_fino ; $data++) {
    echo"$data<br>";
    }
    ?>

  6. #6
    Mah...

    codice:
    
    $valida_da = strtotime('2022-04-20');
    $valida_fino = strtotime('2022-04-29');
    
    
    for ($data = $valida_da; $data <= $valida_fino; $data += 60 * 60 * 24) {
        print(date('Y-m-d', $data) . "\r\n");
    }

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Mah...

    codice:
    
    $valida_da = strtotime('2022-04-20');
    $valida_fino = strtotime('2022-04-29');
    
    
    for ($data = $valida_da; $data <= $valida_fino; $data += 60 * 60 * 24) {
        print(date('Y-m-d', $data) . "\r\n");
    }
    è vero, che sbadato
    Adesso funziona alla grande
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.