Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    creare ciclo di date da form

    Ciao a tutti ho devo creare un sistema che mi inserisca nel db una serie di date che vengono definite da una data di inizio e di fine.

    Ho creato un ciclo for in questo modo:

    Codice PHP:
    //istanzia voci
    $dataIni convertiUS($_REQUEST['dataIni']);
    $dataEnd convertiUS($_REQUEST['dataEnd']);
    //genera ciclo
    for ($i $dataIni$i<=$dataEnd$i++)
    {
    echo 
    $i."
    "
    ;
    }

    ?> 
    Il ciclo funziona solamente se inserisco un valore tra l'inizio e la fine del mese (ad esempio: 01/01/2012 e 30/01/2012), se metto l'intervallo con per es. 01/01/2012 e 03/02/2012 il ciclo mi crea una serie spropositata di valori (con valori anche non conformi come "2012-01-45").

    Come posso risolvere questo problema?

    Ciao mauro

  2. #2
    perché per le date non puoi lavorare con i numeri, devi utilizzare date() e tutte le funzioni annesse
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  3. #3
    ho dato una scorsa alle funzioni DATE(). Ma in pratica cosa dovrei fare?

  4. #4
    Originariamente inviato da emt79
    ho dato una scorsa alle funzioni DATE(). Ma in pratica cosa dovrei fare?
    impostare data di inizio e fine in due variabili.
    effettuare un ciclo che duri finché le due date, parsate in UNIXTIMESTAMP, non risultino uguali, e all'interno del ciclo aggiungere di volta in volta un giorno alla data inizio, con strtotime().


    Ma innanzitutto devi studiare, capire come vengono gestite le date in php e cos'è l'UNIXTIMESTAMP
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  5. #5
    Ho provato ad implementare questa soluzione, ma mi da un ciclo infinito:

    Codice PHP:
    $explodeIni explode('/'$dataIni);
    $dataIniTS mktime(000$explodeIni[1], $explodeIni[0], $explodeIni[2]);
    $explodeEnd explode('/'$dataEnd);
    $dataEndTS mktime(000$explodeEnd[1], $explodeEnd[0], $explodeEnd[2]);
    //genera ciclo
    $date time();
    for (
    $i $dataIniTS$i<=$dataEndTS$i++)
    {
    print(
    date('Y-m-d'$date + ($i 86400)) ."
    "
    );

    In che cosa sbaglio?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da emt79
    Ho provato ad implementare questa soluzione, ma mi da un ciclo infinito:

    Codice PHP:
    $explodeIni explode('/'$dataIni);
    $dataIniTS mktime(000$explodeIni[1], $explodeIni[0], $explodeIni[2]);
    $explodeEnd explode('/'$dataEnd);
    $dataEndTS mktime(000$explodeEnd[1], $explodeEnd[0], $explodeEnd[2]);
    //genera ciclo
    $date time();
    for (
    $i $dataIniTS$i<=$dataEndTS$i++)
    {
    print(
    date('Y-m-d'$date + ($i 86400)) ."
    "
    );

    In che cosa sbaglio?
    Ho fatto alcuni test e semplificato fai cosi

    Codice PHP:
    date_default_timezone_set('Europe/Rome');
    $dataIni strtotime('06/10/2012');
    $dataEnd strtotime('07/15/2012'); 
    //genera ciclo 
    for ($i $dataIni$i<=$dataEnd$i++){
        
    $i += 86399;
        echo 
    date('Y-m-d'$i).'
    '

    }
    /*output:
    2012-06-10
    2012-06-11
    2012-06-12
    2012-06-13
    2012-06-14
    2012-06-15
    2012-06-16
    2012-06-17
    2012-06-18
    2012-06-19
    2012-06-20
    2012-06-21
    2012-06-22
    2012-06-23
    2012-06-24
    2012-06-25
    2012-06-26
    2012-06-27
    2012-06-28
    2012-06-29
    2012-06-30
    2012-07-01
    2012-07-02
    2012-07-03
    2012-07-04
    2012-07-05
    2012-07-06
    2012-07-07
    2012-07-08
    2012-07-09
    2012-07-10
    2012-07-11
    2012-07-12
    2012-07-13
    2012-07-14
    2012-07-15
    */ 

  7. #7
    Grazie della risposta, nel frattempo sono arrivato anche io alla semplificazione in un altro modo ma con lo stesso risultato.

    Grazie ancora per il supporto.

    Mauro

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da emt79
    Grazie della risposta, nel frattempo sono arrivato anche io alla semplificazione in un altro modo ma con lo stesso risultato.

    Grazie ancora per il supporto.

    Mauro
    Di nulla, si puo dare per risolto quindi?

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.