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

Discussione: Problema con strftime

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    207

    Problema con strftime

    Problema:

    Data la mia tabella :
    codice:
    CREATE TABLE `nuovatesi_lavoro` (
      `id` int(11) NOT NULL auto_increment,
      `dataid` date NOT NULL default '0000-00-00',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=4 ;
    Ho inserito 3 record:

    1) dataid: 2005-09-05
    2) dataid: 2005-09-04
    3) dataid: 2005-08-15

    Quando li vado a stampare utilizzo la formula :
    codice:
    $row[dataid] = strftime("%d %m %y");
    la data mi viene corretta come ho richiesto io gg/mm/aa
    Il problema è che mi stampa i 3 record con la stessa data, cioè l'ultima che ho inserito. Perchè ?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    I dati nel database sono corretti? Se lo sono posta il codice con cui li estrai... cosi' capiamo il problema.

    Ciao ciao
    No pvt per sollecitare risposte, grazie.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    207
    I dati sono corretti, ecco come li tiro fuori:

    codice:
    $db=mysql_connect($dbhost,$dbuser,$dbpw)
    or die ("Errore durante la connessione al database"); 
    
    
    $sql="SELECT * FROM data"; 
    $result=mysql_db_query("datatempo",$sql,$db); 
    while ($row=mysql_fetch_array($result)) 
    
    { 
    
    
    $row[dataid] = strftime("%d %m %y"); 
    
    echo "$row[dataid]
    "; 
    
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Guarda che che c'e' qualcosa che non quadra... in che formato vuoi comvertire la data che estrai dal database ?
    No pvt per sollecitare risposte, grazie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    207
    Invece che aaaa-mm-gg vorrei la data gg-mm-aa

    Io con ste date proprio non ci capisco un cavolo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    867
    Non ti piacciono le date? Allora vedila come stringa:

    codice:
    $piece = explode("-",$row[dataid]);
    $data = $piece[2]."-".$piece[1]."-".$piece[0];
    echo $data;
    Metti questo nel tuo ciclo ed e' fatta...
    No pvt per sollecitare risposte, grazie.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    207
    asp che controllo

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    207
    Perfetto funziona benissimo.
    Grazie.
    Potresti spiegarmi il codice che mi hai postato per favore ?

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    $piece = explode("-",$row[dataid]);
    $data = $piece[2]."-".$piece[1]."-".$piece[0];


    E' molto semplice. explode converte una stringa in un array e usa il trattino come separatore. Dopo alla variabile data assegni i vari elementi concatenati tramite il punto e intervallati dal trattino.
    Carina la soluzione di afurly. Io di solito per invertire il formato della data uso la funzione substr() spezzettando la data nel formato americano assegnando giorno, mese e anno a tre variabili che poi concateno nel formato italiano ma così è più carino e pratico.

    $anno = substr($data,0,4);
    $mese = substr($data,5,2);
    $giorno = substr($data,8,2);
    $dataItaliana = $giorno.'/'.$mese.'/'.$anno;

  10. #10
    :master:

    utilizzare la funzione date_format() di mysql ... no ???

    SELECT *, DATE_FORMAT(data, '%d-%m-%Y') as data FROM....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.