- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema con data
-
problema con data
Buongiorno a tutti,
ho una tabella di articoli in un db mysql;
ogni articolo ha un record chiamato "data" di tipo "DATE";
nella mia pagina php per estrarre la data uso: <?php print $row['data'] ?>
e il risultato è una cosa del genere: 2014-08-10
io invece vorrei fosse 10-08-2014, giorno/mese/anno
ho fatto diverse prove, con guide trovate online, ma nulla.qualcuno mi può aiutare?
grazie 1000 in anticipo
buona domenica
-
Ciao!!
Benvenuto nel forum!!La funzione che cerchi è "strtotime()" (string-to-time), utilizzata in coppia con la funzione "date()".
<?php $data_eng= $row['data']; $data_it= date('d-m-Y', strtotime($data_eng)); echo $data_it; ?>
E' un problema comune e per fortuna la soluzione è molto semplice.
Spero di essere stato d'aiuto.
Ciao
-
ciao smartix! sono ancora io
il codice funziona; ho provato il tuo e un'altra soluzione:
<?php print date("d-m-Y", strtotime($row['data'])); ?>
e me lo fa vedere bene: giorno/mese/anno
avrei un altro quesito sempre riguardante le date però:
ho la schermata di inserimento articolo del mio piccolo cms, nel campo data ho messo un calendarietto fatto con jquery,
<input name="data" id="datepicker" type="text" class="campi" placeholder="">
e il calendarietto mi mette la data in formato: mese/giorno/anno
quella pagina ne chiama un'altra che carica i dati nel db:
questa è la riga che li carica:
$data = $_POST['data'];
ma non me la prende giusta;
probabilmente devo settare il formato sia in entrate che in uscita;
mi puoi aiutare?
grazie 1000
buona serata
-
Come ti prende la data?
Comunque il datepicker di Jquery può essere settato in base alle tue esigenze
http://stackoverflow.com/questions/1328025/jquery-ui-datepicker-change-date-format
-
Ciao!!
Ecco un paio di osservazioni sul tuo ultimo messaggio:*<?php print date("d-m-Y", strtotime($row['data'])); ?>*
E' esattamente la stessa cosa, l'esempio che ti ho fatto è scritto in forma "didattica". Nelle tue pagine php però ti conviene inserire tutto in una funzione ad hoc "date_eng_it()" che converte le date e che potrai richiamare al bisogno. Forse ci eri già arrivato da solo
Per quanto riguarda il calendario e l'inserimento nel database basta tenere a mente tre concetti:
a) Il database lavora con le date in formato inglese/americano 'Y-m-d'Dalla documentazione ufficiale di MySQL:
The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.
b)Ne consegue che ogni volta che devi INSERIRE una data nel database dovrai prima manipolarla (se in formato diverso) per trasformarla in formato 'Y-m-d'
c)Quando invece fai il procedimento inverso, ovvero recuperi una data dal database e la stampi a video, allora dovrai convertire la data in formato italiano 'd-m-Y' per facilitare la lettura all'utenza italiana.
Quanto detto si riferisce al SOLO PHP e MySQL.
In questo contesto si inserisce il datepicker Jquery.
Se guardi la documentazione scoprirai che è possibile cambiare il formato con cui compare la data (e usare quello italiano).
http://jqueryui.com/datepicker/#date-formatsFatto ciò verifica con quale formato viene inviata la data in post (echo $data nella pagina alla quale viene inviato il form)
Se la data non è in formato compatibile con il database convertila con il codice di cui abbiamo discusso nei post precedenti.
Dammi conferma quando hai letto il messaggio.
Buona giornata
-
ciao smartix!
letto e recepito il messaggio; ho capito in teoria come fare, questi giorni provo e magari se ho difficoltà chiedo qui;
grazie di tutto a tutti intanto, magari pubblico quello che sto facendo, così mi dai un parere tecnico;
di dove sei te?
buona serata
-
riuscito!
posto se a qualcuno interessasse.
Sistemato tutto con jquery;
ho seguito questa guida:
mynamespace.it/2010/06/13/gestione-di-date-con-php-mysql-e-jquery-ui-datepicker/di fatto ci sono 2 input:
<input name="data_finta" id="datepicker" type="text" class="campi" placeholder="Inserisci la Data dell'Articolo nel Formato GG/MM/AAAA">
<input name="data" id="data" type="hidden">uno solo visuale per l'utente e l'altro con la data buona per il db;
script:
<script type="text/javascript" >
$(function() {
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd-mm-yy",altField: '#data',
altFormat: 'yy-mm-dd' // formato timestamp
});
});
</script>grazie 1000 a tutti!
-
Bravo per essere riuscito ad implementare la soluzione,
e bravo per aver condiviso il codice e il link alla documentazione.P.s. Nei messaggi, quando inserisci un pezzo di codice, racchiudi tutto tra i tag "CODE" così automaticamente avrà il layout corretto.
-
grazie smartixx!
la prossima volta metto i tag "CODE".
graze di tutto!
-
Il tag "CODE" è buono, ma è molto meglio quello "PHP" perché colora la sintassi del codice (lo si trova premendo il pulsante "Modalità Avanzata" in basso a destra), come già prescritto nel regolamento di sezione.