Visualizzazione dei risultati da 1 a 5 su 5

Discussione: elencare date

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    elencare date

    Quello che mi serve è, a partire da due date che prelevo dal db, costruire un elenco dei giorni dall'una all'altra. Ad esempio, se le mie due date sono:
    2021-07-10 e 2021-07-15
    mi occorre una variabile che contenga queste date, cioè:
    2021-07-10, 2021-07-11, 2021-07-12, 2021-07-13, 2021-07-14, 2021-07-15
    Per fare ciò uso questo codice:
    codice:
    $sql = "SELECT start, end FROM calendario ORDER BY id ASC";$result = $link->query($sql);
    while($row = $result->fetch_assoc()) {
        $start = $row["start"];
        $end = $row["end"];    
        $data_in = new DateTime($start);
        $data_out = new DateTime($end);
        $diff = $data_out->diff($data_in);
        $diff->days;
        $create_date = [];
        for ($i=1;$i<=$diff->days;$i++) {
            $data_in->add(new DateInterval('P1D'));
            $create_date[] = [$data_in->format('Y-m-d')];
        }
            $array_stringa = implode(",", $create_date);
        $date_list .= var_dump($array_stringa);
        }
        echo $date_list;
    }
    ma quello che mi restituisce è:
    string(29) "Array,Array,Array,Array,Array"
    se invece di:
    $array_stringa = implode(",", $create_date);
    $date_list .= var_dump($array_stringa);
    e poi l'echo, uso:
    print_r($create_date);
    mi restituisce:
    Array ( [0] => Array ( [0] => 2021-07-11 ) [1] => Array ( [0] => 2021-07-12 ) [2] => Array ( [0] => 2021-07-13 ) [3] => Array ( [0] => 2021-07-14 ) [4] => Array ( [0] => 2021-07-15 ) )


    metatad
    graphic & web design

  2. #2
    Invece di:
    codice:
     $create_date[] = [$data_in->format('Y-m-d')];
    Scrivi:
    codice:
     $create_date[] = $data_in->format('Y-m-d');

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Perfetto, grazie!
    Come posso evitare che appaia questo (
    string(54))?
    Ovviamente string è facile da togliere, ma per eliminare il conteggio dei caratteri devo rifarlo, o posso toglierlo a monte?
    Thanx...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Non riesco ad agire sulla stringa che mi restituisce... laddove mi dà
    codice:
    string(54) "2021-07-02,2021-07-03,2021-07-04,2021-07-05,2021-07-06"
    , infatti, a me servirebbe
    codice:
    disabledDates: ['2021/07/02','2021/07/03','2021/07/04','2021/07/05','2021/07/06'], formatDate:'Y/m/d',
    Per ottenere questo risultato uso questo codice:
    codice:
        $cutchar = 10;
        $date_list = substr($date_list, $cutchar);
        $date_list = str_replace("\"","",$date_list);
        $date_list = str_replace(",","','",$date_list);
        $date_list = str_replace("-","/",$date_list);
        $date_list = "disabledDates: ['" . $date_list . "'], formatDate:'Y/m/d',";
        echo $date_list;
    ma quello che viene fuori è:
    codice:
    string(54) "2021-07-02,2021-07-03,2021-07-04,2021-07-05,2021-07-06"disabledDates: [''], formatDate:'Y/m/d',
    metatad
    graphic & web design

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Okay, risolto:
    codice:
    $date_list = "";
    $sql = "SELECT start, end FROM calendario ORDER BY id ASC";
    $result = $link->query($sql);
    while($row = $result->fetch_assoc()) {
    	$start = $row["start"];
    	$end = $row["end"];
    	$data_in = new DateTime($start);
    	$data_out = new DateTime($end);
    	$diff = $data_out->diff($data_in);
    	$diff->days;
    	$create_date = [];
    	for ($i=1;$i<=$diff->days;$i++) {
    		$data_in->add(new DateInterval('P1D'));
    		$create_date[] = $data_in->format('Y-m-d');
    		$date_list .= implode(",", $create_date) . ",";
    	}
    }
    $cutchar = 10;
    $date_list = substr($date_list, $cutchar);
    $date_list = implode(',', array_unique(explode(',', $date_list)));
    $date_list = str_replace("\"","",$date_list);
    $date_list = str_replace(",","','",$date_list);
    $date_list = str_replace("-","/",$date_list);
    $date_list = "disabledDates: ['" . $date_list . "'], formatDate:'Y/m/d',";
    echo $date_list;
    metatad
    graphic & web design

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 © 2024 vBulletin Solutions, Inc. All rights reserved.