• User

    Problemi con le date in PHP

    Ciao a tutti quelli che leggono questo forum intanto .

    Io ho un problema che mi sta facendo diventare matto , ho ricercato una soluzione dappertutto però non riesco ad andarne fuori dalla mia situazione .

    Io ho un campo timestamp all'interno del database e fin qui tutto ok
    vado a ciclare il tutto

    <?php do { ?>
    <?php $gin = $row_news["DATA"];
    ?>
    <br>
    <table width="470" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><div align="left" class="Stile1Copia">Aggiornata il <span class="Data"><?php echo $gin; ?></span></div></td>
    </tr>
    <tr>
    <td class="Stile1titoloNero"><img src="images/punto.gif" width="14" height="9"><span class="Stile1titoloMaiuscolo"><?php echo $row_news['TITOLO']; ?></span></td>
    </tr>

    Dove la varibile $gin è semplicemente quello che recupero dal database , l'ho trasformata in una variabile con quel nome per semplicità mia personale .
    Domanda da un milione di dollari ??

    Io adesso come posso fare a trasformare la variabile gin nel formato

    GG/MM/AAAA ORE-MINUTI-SECONDI ?

    Aiutatemi vi prego perchè ci sto sbattendo la testa da un paio di giorni e veramente non so come andane fuori ....
    Ciauzzz


  • Moderatore

    Provato così?

     $gin = date("d/m/Y H-i-s",$gin);
    

    Per leggere la data fai ```
    echo $gin;

    
    :)

  • User

    @sitionweb said:

    Provato così?

    > $gin = date("d/m/Y H-i-s",$gin);
    >```
     
    Per leggere la data fai ```
    >echo $gin;
    >```
     
    :)
     
    :x :x :x :x 
     
    Caspita quando vado a vedere la pagina mi da questa data su tutti i record all'interno del database !!!
     
    01/01/1970 01-33-26
     
    Mi viene da piangere :impiccato:
     
    A proposito ti ringrazio per la tua risposta

  • User Attivo

    Nella query metti :

    Select UNIX_TIMESTAMP(DATA) as dataora.... 
    

    per la visualizzazione:

    echo date("d.m.y H.i.s",$row_news['dataora'])
    

    Sostituendo le lettere dmy ecc. puoi modificare la visualizzazione

    Valentino


  • User

    mittico! propio ieri mi scervellavo per lo stesso
    grazie!!!


  • User

    @Lumpi said:

    Nella query metti :

    >Select UNIX_TIMESTAMP(DATA) as dataora.... 
    >``` 
    per la visualizzazione:
    

    echo date("d.m.y H.i.s",$row_news['dataora'])

    Sostituendo le lettere dmy ecc. puoi modificare la visualizzazione

    Valentino

    Magari mi andasse , accenderei un cero per Valentino :re:

    Non so cosa ho combinato ( perchè sicuramente il danno l'ho fatto io )
    Però con questo metodo mi salta fuori sempre la mitica data

    01.01.70 01.33.26 ( che tra l'altro non so proprio come faccia ad inventarsela , premetto che se io faccio la chiamata normale senza andare a trasformare la variabile , mi viene fuori la data giusta all'interno del DB , solamente che mi viene fuori il timestamp americano , quindi con le date rovescie rispetto alle nostre ) .

    Però adesso che ci penso , siccome io uso una versione di php-myadmin diverso da quello che usa Aruba , ho notato questa cosetta qua , all'interno del campo timestamp

    image

    Mi scrive la data come fosse una vera data , e non come la vecchia versione che mi scriveva un numero intero !
    Però adesso che ci penso non credo che sia questo il problema , altrimenti non le vedrei proprio le date ....
    Avete qualche altra idea su quello che mi succede ?
    Vi do delle informazioni in più , uso easyphp come server web , in locale , e poi invece come macchina in hosting uso una macchina linux , fedora core se non sbaglio , ma non penso sia questo nemmeno il problema .
    Ciao a tutti e vi ringrazio dell'aiuto che mi state dando 😄 😄


  • User Attivo

    La data non se la inventa (corrisponde allo 0 ), cambia il campo in timestamp e funzionerà

    Valentino


  • User

    @Lumpi said:

    La data non se la inventa (corrisponde allo 0 ), cambia il campo in timestamp e funzionerà

    Valentino
    Il campo è settato su TIMESTAMP , però non funziona ?:bho:

    image

    Facciamo cosi , indicami secondo te la strada giusta che devo seguire per poter fare bene questa cosa qua :

    Voglio inserire delle news , con data di inserimento ( quindi TIMESTAMP )

    Voglio che le news quando le tiro giu sulla pagina siano ordinate per data di inserimento e che la data la veda in maniera umana ( magari compresa di minuti secondi ) .
    La mia mente malata mi suggerisce a questo punto di inserire un campo TIME , con aggiornamento contemporaneo all'inserimento , e l'aggiunta di questa mitica stringa nella query

    $query_news = "SELECT ID, date_format(DATA,'%d/%m/%Y') DATA, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news

    Quindi quando vado a vedere quello che ci sta dentro comporrò 2 variabili all'interno del ciclo DO

    Una con la data nel formato giusto , e una con il tempo , l'unica cosa che mi fa impazzie di sta roba qua è che se io le metto in ornide per data , mi viene fuori una emerita s......ta , ovvero lui li mette in fila partendo dalla prima posizione del campo ( che dopo averlo trasformato con la mitica stringa , si trasforma nel campo dei giorni ) e quindi mi sbaglia perchè mettendo in ordine prima i giorni se ne strafrega dell'anno , Quindi il
    13/8/2006 viene prima del 14/8/2005 , andando in ordine dal piu vecchio al piu recente perchè mi ha messo in ordine prima i giorni e poi i mesi e l'anno non l'ha nemmeno guardato !!!

    Voi direte , caspita è giusto perchè effettivamente lui ti ha girato le date però ragiona sempre con il sistema americano , che ha l'anno all'inizio del campo ,
    Allora mi viene in mente sta cosa , non è che per caso sia che devo settare quell bellissima stringa che se non mi sbaglio si chiama
    LC_time ecc.. ecc.. ? per far si che veda che sono localizzato in Italia ?
    Ma io dico sti Americani Inglesi ecc..ecc.. quanto si divertono a romperle non bastava la guida rovescia , la frasi rovescie , anche le date rovescie !!!!


  • User Attivo

    Mi dici come inserisci la i dati in DATA?

    E' strana questa cosa a me funzione benissimo

    Valentino


  • User

    @Lumpi said:

    Mi dici come inserisci la i dati in DATA?

    E' strana questa cosa a me funzione benissimo

    Valentino
    Stavo lottando anche io su sta cosa qua ,
    Scusa fammi un po di luce nel mio cervellino bacato ,
    se io devo spedire i dati al database , come faccio a settare la funzione al'interno della query ?
    Mi spiego meglio , come faccio a dirgli all'interno della mia query , che voglio che la data sia NOW ? oppure CURDATE , piu che altro dove caspita devo inserirla la funzione x queste cose qua ?

    image

    Mitico Valentino ( corri in moto ? ) che stai perdendo tempo con me

    :vaiii: :vaiii: :vaiii: :vaiii:

    scusa rispondo a quello che mi hai chiesto

    Non inserisco i dati in DATA , perchè ho settato il valore NOW all'interno del database , quindi lui mi mette il timestamp in automatico , poi ti dico , nella versione del mio hoster di PHPMYADMIN , c'è addirittura lìopzione

    ON_UPDATE_CURRENT_TIMESTAMP , che mi aggiorna il timestamp ogni volta che aggiorno il record


  • User Attivo

    Fai delle prove inserendo echo $row_news['DATA']; in una parte della pagina e vedi che ti dice.
    Se non c'è output hai un problema nelle variabili.
    Come stai facendo dovrebbe andare bene, però potresti provare a fare cosi:

    insert into news (DATA, .., ..) values (now(), .., ..)
    

    nella query scrivi come ti ho detto sopra.

    Mitico Valentino ( corri in moto ? ) che stai perdendo tempo con me
    Mi diverto 😉 e mi rilasso

    Valentino


  • User

    @Lumpi said:

    Fai delle prove inserendo echo $row_news['DATA']; in una parte della pagina e vedi che ti dice.
    Se non c'è output hai un problema nelle variabili.
    Come stai facendo dovrebbe andare bene, però potresti provare a fare cosi:

    >insert into news (DATA, .., ..) values (now(), .., ..)
    >``` 
    nella query scrivi come ti ho detto sopra.
     
     
    Mi diverto ;-) e mi rilasso 
     
    Valentino
     
    sIGH :cry: :cry: :cry: 
     
    Non c'è outpout , solamente all'interno del ciclo DO l'outpout salta fuori !!

  • User

    <?php require_once('Connections/orchestra.php'); ?>
    <?php require_once('Connections/fiatidelveneto.php'); ?>
    <?php
    mysql_select_db($database_orchestra, $orchestra);
    $query_news = "SELECT UNIX_TIMESTAMP(DATA) ID, DATA, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC";
    $news = mysql_query($query_news, $orchestra) or die(mysql_error());
    $row_news = mysql_fetch_assoc($news);
    $totalRows_news = mysql_num_rows($news);
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>News</title>
    <style type="text/css">
    <!--
    body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    }
    -->
    </style>
    <link href="style.css" rel="stylesheet" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <body>
    <img src="images/news.gif">

    <?php do { ?>
    <?php //$gin = $row_news["DATA"];
    //$gin = date("d/m/Y H-i-s",$gin);
    ?>
    <br>
    <table width="470" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><div align="left" class="Stile1Copia">Aggiornata il
    <label></label>
    <?php echo date("d.m.y H.i.s",$row_news['DATA']) ?></div></td>
    </tr>
    <tr>
    <td class="Stile1titoloNero"><img src="images/punto.gif" width="14" height="9"><span class="Stile1titoloMaiuscolo"><?php echo $row_news['TITOLO']; ?></span></td>
    </tr>
    <tr>
    <td height="8"></td>
    </tr>
    <tr>
    <td class="Stile1"><?php echo $row_news['DESCRIZIONE']; ?></td>
    </tr>
    <tr>
    <td height="8"></td>
    </tr>
    <tr>
    <td><p><a href="<?php echo $row_news['LINK']; ?>" target="_blank" class="Label-Link"><?php echo $row_news['LABEL']; ?></a></p> </td>
    </tr>
    </table>
    <br>
    <?php } while ($row_news = mysql_fetch_assoc($news)); ?>
    <br>
    </body>
    </html>
    <?php
    mysql_free_result($news);
    ?>

    Questo è lo script che uso


  • User

    [LEFT]Aggiornata il 01.01.70 01.33.26[/LEFT]
    imageCorsi ad indirizzo musicaleSono stati avviati i corsi di formazione musicale rivolti a ragazzi, giovani e meno giovani, orientati sia ad un ambito amatoriale che professionale.
    L'insegnamento prevede tutti gli strumenti a fiato e a percussione.
    I corsi sono promossi dalla Provincia di Venezia - Dipartimento Istruzione e Cultura.
    leggi il depliant

    [LEFT]Aggiornata il 01.01.70 01.33.26[/LEFT]
    imageIl primo CD dell'OrchestraE' in preparazione il primo CD dell'Orchestra di Fiati del Veneto.
    Sarà l'evento dell'anno 2007 e consentirà a tutti gli appassionati di gustare il meglio del nostro repertorio che va dai classici (Pachelbel, Holst, ...) ad autori moderni (Van der Roost, De Haan, Morricone,...).

    [LEFT]Aggiornata il 01.01.70 01.33.26[/LEFT]
    imageTour di concerti in GermaniaDal 28 aprile al 2 maggio 2006 l'Orchestra di Fiati del Veneto ha tenuto una serie di concerti in Baviera e Franconia nelle località di Marktbreit, Ochsenfurt, Wurzburg e Rothenburg ob der Tauber nell'ambito di uno scambio culturale con il Collegium Musicum Iuvenale di Ochsenfurt.
    L'occasione ha consentito al rappresentante della provincia di Venezia di promuovere le bellezze della terra ferma e del litorale veneziano.

    E questo il risultato che mi da


  • User Attivo
    $query_news = "SELECT UNIX_TIMESTAMP(DATA) ID, `DATA`, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC";
    ``` diventa
    

    $query_news = "SELECT UNIX_TIMESTAMP(DATA) as dataora, ID, DATA, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC";

    
     e 
    
    
         <?php echo date("d.m.y H.i.s",$row_news['DATA']) ?></div></td>
    
    diventa
    
    
         <?php echo date("d.m.y H.i.s",$row_news['dataora']); ?></div></td>
    
    Prova così
    
    Valentino

  • User

    @Lumpi said:

    $query_news = "SELECT UNIX_TIMESTAMP(DATA) ID, `DATA`, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC";
    ``` diventa
    
    >$query_news = "SELECT UNIX_TIMESTAMP(DATA) as dataora, ID, `DATA`, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC";
    >```
     
    e 
     
    
        <?php echo date("d.m.y H.i.s",$row_news['DATA']) ?></div></td>
    

    diventa

    >         <?php echo date("d.m.y H.i.s",$row_news['dataora']); ?></div></td>
    >``` 
    Prova così
     
    Valentino
     
    Guarda ti ringrazio veramente tantissimo , adesso funziona perfettamente sei un mito !!!
     
    L'unica cosa che non capisco è questa , perchè per far si che la data venga fuori giusta , mi tocca smazzarmi e dirgli che la variabile DATA è UNIXTIME , ed il valore rovesciarlo all'interno di un altra variabile dataora?
     
    Poi ti dico il problema c'è l'ho anche in un altro script , solamente che in questo vado ad inserire io la data ( che a questo punto secondo logica sarebbe meglio inserire con delle variabili , per far si che vadino dentro come DATETIME in formato Americano , e poi attaverso il mitico script che mi hai corretto , le rimaneggio in maniera giusta !!!
     
    scusa se ti stresso , ma io non sono del settore anzi ( sono perito meccanico vedi un po te ) , però mi piace da matti e ho imparato leggendo fiumi e fiumi di libri ( che assolutamente non ti spiegano nieente di ste cose ,anzi sono ripetitivi fino all'estremo , sempre le solite menate niente di approfondito ) 
     
    Mi puoi consigliare qualche libro da leggere o manuale da sfogliare ( magari in italiano che non sarebbe proprio male ) 
    Anche libri a livello scolastico , che forse spiegano meglio ste cose !!
     
    Come sono felice :yuppi: :yuppi: :yuppi: :yuppi: :yuppi: :yuppi:

  • User Attivo
    L'unica cosa che non capisco è questa , perchè per far si che la data venga fuori giusta , mi tocca smazzarmi e dirgli che la variabile DATA è UNIXTIME , ed il valore rovesciarlo all'interno di un altra variabile dataora?
    

    I formati non sono compatibili dataora è solo un nome a caso

    Poi ti dico il problema c'è l'ho anche in un altro script , solamente che in questo vado ad inserire io la data ( che a questo punto secondo logica sarebbe meglio inserire con delle variabili , per far si che vadino dentro come DATETIME in formato Americano , e poi attaverso il mitico script che mi hai corretto , le rimaneggio in maniera giusta !!!
    

    per l'inserimento manuale basta che scrivi tipo: 20061216111900 nel campo DATA

    Internet è la mia maggior fonte di apprendimento e poi smanetta un po...

    Ciao Valentino


  • User Attivo

    [quote=Elvenesian]Ciao a tutti quelli che leggono questo forum intanto .

    Io ho un problema che mi sta facendo diventare matto , ho ricercato una soluzione dappertutto però non riesco ad andarne fuori dalla mia situazione .

    Io ho un campo timestamp all'interno del database e fin qui tutto ok
    vado a ciclare il tutto

    PENSO CHE IL TUO QUESITO, SE NON RISOLTO, LO SIA

    Io adesso come posso fare a trasformare la variabile gin nel formato

    GG/MM/AAAA ORE-MINUTI-SECONDI ?

    $data_g = $gin[8].$gin[9];
    $data_m = $gin[5].$gin[6];
    $data_a = $gin[0].$gin[1].$gin[2].$gin[3];
    $ore = $gin[11].$gin[12];
    $min = $gin[14].$gin[15];
    $sec = $gin[17].$gin[18];
    $gin = $data_g.'-'.$data_m.'-'.$data_a.' | '.$ore.':'.$min.':'.$sec;

    COSI' OTTERRAI gg-mm-aaaa ore:min:sec. SE NON TI VA BENE CAMBIA ALL'INTERNO DELL'ULTIMA DICHIARAZIONE DELLA VARIABILE $gin o il trattino - oppure i due punti :.
    Spero ti sia stato di aiuto
    CIAO