Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Data Errata

  1. #1

    Data Errata

    Salve
    Ragazzi io da un calendario , a seconda della data, mi apre una pagina con questo codice, funziona quasi tutto, la data corrispondono , ma quando nel visualizzarla invece è sballata come risolvo?
    questo è il codice:


    Codice PHP:
    <link href="style.css" rel="stylesheet" type="text/css" />
    <?php
    if(@isset($_GET['day']) && @is_numeric($_GET['day']))
    {
      
    $day $_GET['day'];
      @include 
    'config.php';
      
    $sql "SELECT * FROM ortobotanico WHERE str_data=$day";
      
    $result = @mysql_query($sql) or die (mysql_error());
      if(@
    mysql_num_rows($result) > 0)
      {
        while(
    $fetch = @mysql_fetch_array($result))
        {
          
    $id = @stripslashes($fetch['id']);
          
    $istituto = @stripslashes($fetch['istituto']);
          
    $itinerario = @stripslashes($fetch['itinerario']);
          
    $data = @date("d-m-Y"$fetch['str_data']); 
          
    $orario = @stripslashes($fetch['orario']);
          
          echo 
    "<div class='testo'>Prenotazione del[b]$data[/b]
    Istituto:" 
    $istituto "
     Itinerario:" 
    $itinerario "
    Fascia Oraria:" 
    $orario "
    </div><hr>"
    ;
        
        }
      @
    mysql_close();
      } 
    }
    Il problema praticamente è nella visualizzazione qui

    Codice PHP:
    echo "<div class='testo'>Prenotazione del[b]$data[/b]
    Istituto:" 
    $istituto "
     Itinerario:" 
    $itinerario "
    Fascia Oraria:" 
    $orario "
    </div>"

    MI mette una data futura e non al 2008

    Vi ringrazio in anticipo per l'aiuto

  2. #2
    ma in poche parole tu la data la estrai dal database?
    in ke modo salvi la data?

  3. #3
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Prova a cambiare
    Codice PHP:
    $data = @date("d-m-Y"$fetch['str_data']); 
    in questo modo
    Codice PHP:
    $data = @date("d-m-Y"strtotime($fetch['str_data'])); 
    Vedi che succede: è importante inoltre sapere che formato hai usato nel database.

    La modifica che ti ho postato converte il formato data di MySql yyyy-mm-gg hh.mm.ss --> gg/mm/aaaa


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  4. #4
    Vi ringrazio per le risposte, praticamente ho fatto come mi hai detto ma adesso la data l'anno è passato e n on piu futuro.

    Come inserisco la data nel db in questo modo


    Codice PHP:
    $str_data = @strtotime($_POST['data']); 
    come posso formattarla per far vedere la data corretta e nn passata o futura?
    grazie

  5. #5
    1. devi impostare il campo della data nella tabella mysql di tipo intero di 16 o + caratteri

    2. dove inserisci la data nel campo input ti consiglio di usare Tigra Calendar così siamo sicuri che la data esiste e tutto...

    se no metti: <input type="text" name="textfield" id="textfield" value="<?php echo time();?>" />

    che la funzione time(); stamperà una serie di numeri così: 1220545701

    3. recupera la data presa via post e salvala così nel database

    4. per la visulizzazione usa:

    Codice PHP:
    //$data_db è la variabile che assegni la data presa da database
    $data date('d-m-Y H:i:s'$data_db);
    echo 
    $data
    per ulteriori approfondimenti su data();

    info

  6. #6
    ti ringrazio per la risposta, però modificare il db mi spaventa pekke ho fatto calendario e funziona tutto anche la visualizzazione della data, ascolta ti posto calendario, cosi magari mi dici come settare anche li.


    Codice PHP:
    <?php
    function ShowCalendar($m,$y)
    {
      if ((!isset(
    $_GET['d']))||($_GET['d'] == ""))
      {
        
    $m $m;
        
    $y $y;
      }else{
        
    $m = (int)@strftime"%m" ,(int)$_GET['d']);
        
    $y = (int)@strftime"%Y" ,(int)$_GET['d']);
        
    $m $m;
        
    $y $y;
      }

      
    $precedente = @mktime(000$m -11$y);
      
    $successivo = @mktime(000$m +11$y);

      
    $nomi_mesi = array("",
        
    "Gen",
        
    "Feb",
        
    "Mar",
        
    "Apr",
        
    "Mag",
        
    "Giu",
        
    "Lug",
        
    "Ago",
        
    "Set",
        
    "Ott",
        
    "Nov",
        
    "Dic"
      
    );

      
    $nomi_giorni = array(
        
    "Lun",
        
    "Mar",
        
    "Mer",
        
    "Gio",
        
    "Ven",
        
    "Sab",
        
    "Dom"
      
    );

      
    $cols 7;
      
    $days = @date("t",@mktime(000$m1$y)); 
      
    $lunedi= @date("w",@mktime(000$m1$y));
      if(
    $lunedi==0$lunedi 7;

      echo 
    "<table>\n"
      echo 
    "<tr>\n
      <td class='testo' colspan=\""
    .$cols."\">
      <a href=\"?d=" 
    $precedente "\">&lt;&lt;</a>
      " 
    $nomi_mesi[$m] . " " $y 
      <a href=\"?d=" 
    $successivo "\">&gt;&gt;</a></td></tr>";
      foreach(
    $nomi_giorni as $v)
      {
        echo 
    "<td class='testo'>[b]".$v."[/b]</td>\n";
      }
      echo 
    "</tr>";

      for(
    $j 1$j<$days+$lunedi$j++)
      {
        if(
    $j%$cols+1==0)
        {
          echo 
    "<tr>\n";
        }

        if(
    $j<$lunedi)
        {
          echo 
    "<td> </td>\n";
        }else{
          
    $day$j-($lunedi-1);
          
    $data = @strtotime(@date($day."-".$m."-".$y));
          
    $oggi = @strtotime(@date("d-m-Y"));
          @include 
    'config.php';
          
    $sql "SELECT str_data, orario FROM ortobotanico";
          
    $result = @mysql_query($sql) or die (mysql_error());
          if(@
    mysql_num_rows($result) > 0)
          
          {
            while(
    $fetch = @mysql_fetch_array($result))
            {
              
    $str_data $fetch['str_data'];
              
            if (
    $str_data == $data )
            
              
              {
              
                
    $day "[url='javascript:popup(\"appuntamenti.php?day=$str_data\")']$day[/url]";
                 
              }
            }
          }

          if(
    $data != $oggi)
          {
            echo 
    "<td><font class='numeri'>".$day."</font></td>";
          }else{
            echo 
    "<td><font class='numeri'>[b]".$day."[/b]</font></td>";
          }
        }

        if(
    $j%$cols==0)
        {
          echo 
    "</tr>";
        }
      }
      echo 
    "<tr></tr>";
      echo 
    "</table>";
    }

    @
    mysql_close();
    @
    ShowCalendar(@date("n"),@date("Y"));
     
    ?>
    Qui la data la visualizzo perfettamente , Non esiste un modo che lasciando come sta il db, possa il numero che crea convertirmelo nella corrispondente data?

  7. #7
    partiamo dall'inizio...

    $_GET['day']

    a questa variabile cosa assume?

  8. #8
    get day è la data inserita nel db, che arriva in formato strtotime, o meglio tipo 1204239600, io devo solo fare in modo che questa data venga visualizzata in formato gg-mm-anno , e bene o male lo fa, ma la data non è corretta, mi da una data futura o passata facendo in questo modo:

    Codice PHP:
      $data = @date("d-m-Y"$fetch['str_data']); 

  9. #9
    Codice PHP:
    <?php
    $tmsp
    =1220545701// data 04-09-2008
    echo date('d m Y',$tmsp);

    echo 
    "

    "
    ;
    $data="04-09-2008";
    $str=strtotime($data);
    echo 
    date('d m Y',$str);

    echo 
    "

    "
    ;
    $data="2008-09-04";
    $str=strtotime($data);
    echo 
    date('d m Y',$str);
    ?>
    Prova a lanciare una pagina vuota mettendo questo codice per farti capire un po' la funzione strtotime

    Ps. ma get day nel db che formato ha?

    tipo1: 1220545701
    tipo2: 04-09-2008
    tipo3: 2008-09-04

  10. #10
    allora dal calendario io ho segnato in rosso il 2-settembre 2008, quando vado sul link , day corrisponde a questo numero 1204239600, usando l'esempio che mi ha gentilmente l'ho scritto e la data mi risulta 29 02 2008 è questa qua che non corrisponde , qual'è problema. gli script sono questi

    www.freestyleweb.it/progetti/orto (dove c0è il calendario)

    www.freestyleweb.it/progetti/orto/prova.php la prova che mi ha scritto.


    Come faccio a far visualizzare la data corretta?

    al tuo esempio inoltre ho aggiunto questo , per vedere se magari era la data nel db ad essere errata , allora ho fatto cosi

    echo "

    ";
    $prova = @strtotime('02-09-2008');
    echo $prova;

    e corrisponde esattamente a 1204239600

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.