Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    63

    ... a proposito delle date

    Ho visto che la funzione strtotime() converte una stringa in unix_timestamp.
    Per convertire una data dal formato italiano in unix_timestamp è necessario prima manipolare la stringa per ottenere il formato mm/gg/aaaa e poi utilizzare la funzione unix_timestamp oppure c'è un sistema più veloce?

    Grazie

  2. #2

    Re: ... a proposito delle date

    Originariamente inviato da cokeduck
    Ho visto che la funzione strtotime() converte una stringa in unix_timestamp.
    Per convertire una data dal formato italiano in unix_timestamp è necessario prima manipolare la stringa per ottenere il formato mm/gg/aaaa e poi utilizzare la funzione unix_timestamp oppure c'è un sistema più veloce?

    Grazie
    Dipende da dove devi mettere la stringa. Parli di php o di mysql ???

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    63
    in pratica da voglio salvare una data presa un form e salvarla nel formato UNIX_TIMESTAMP in Mysql.

  4. #4
    Hai due modi: traslare in unix timestamp in php oppure nella query.

    devi sempre pero' fare un explode della data. Facciamo finta sia:
    codice:
    data = '29/09/2004';
    list($giorno, $mese, $anno) = explode('/', $data); 
    $data=mktime("0", "0", "0", $mese, $giorno, $anno);
    
    INSERT INTO tabella (data, altro) VALUES
    ('$data','$altro')
    Se invece vuoi convertirla nella query:
    codice:
     
    data = '29/09/2004';
    list($giorno, $mese, $anno) = explode('/', $data); 
    $data ="$anno-$mese-$giorno";
    
    INSERT INTO tabella (data, altro) VALUES
    (unix_timestamp('$data'),'altro')

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    63
    Grazie, molto utile.
    Ne approfitto ... se la data è antecedente il 01/01/1970 non è possibile memorizzarla in unix_timestamp?
    Qual'è il modo migliore per conservarla in Mysql?

  6. #6
    Originariamente inviato da cokeduck
    Grazie, molto utile.
    Ne approfitto ... se la data è antecedente il 01/01/1970 non è possibile memorizzarla in unix_timestamp?
    Qual'è il modo migliore per conservarla in Mysql?
    codice:
    0000000000  
    1970-01-01 01:00:00  <--- min
    
    2147468399
    2038-01-18 23:59:59  <--- max
    Questi sono i due range ammessi da UNIX TIMESTAMP. Per le date precedenti o posteriori non si potra' usare mktime, date, time e tutte quelle funzioni che utilizzano UNIX TIMESTAMP. In php saranno dati stringa.

    Date() e' leggermente piu' esteso di mktime() forse per qualche giochino di time zone. Ma il range minimo e' assolutamente quello indicato.

    Per questa ragione utilizzo i formati nativi di mysql. Per uniformita' di script (qualsiasi data) senza nulla togliere alla possibilita' di convertire il formato del database in unix timestamp se dovesse servire per comodita' di calcolo.

    Poi c'e' chi si trova meglio in un modo chi in un altro... Le performance sono nell'ordine dei millisec o meno... Stessa valenza del sesso degli angeli.


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

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    63
    Grazie 1000!

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.