Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [mySQL] strano problema con le date

    Ciao a tutti, ho uno strano problema con le date e con l'inserimento di queste nel database.
    Ho un campo che contiene i valori delle date nel formato 'date' ovvero: ANNO-MM-GG.
    Ora, quando devo inserire un nuovo articolo per la data uso un pannello creato da me dove mediante form scelgo 'giorno, mese e anno' assegnando ogni valore ad una variabile, con SUBMIT invio tutto ad una pagina di destinazione che mi riunisce le 3 variabili in una sola per essere inserita nel dbase:

    $data = $_POST['anno']."/".$_POST['mese']."/".$_POST['giorno'];

    Qualcosa va storto perchè il valore viene inserito nel database(c'e' materialmente!) ma quando lo vado a leggere mediante:

    print strftime('%d/%m/%Y',strtotime($row['data']));

    mi escono spazi bianchi e nessun numero!
    Che sia un problema di formattazione??
    Nel database come detto sembra memorizzato correttamente...

    Spero che qualche anima mi aiuti.

    ciao.

  2. #2
    Ragazzi ho scoperto che lo fa solo con le data dal 1970 in poi!
    Ma è strano.. giorni fa ho abbandonato il vecchio unix timestamp per passare al formato 'date' proprio per l'incompatibilità di unix timestamp con windows.

    Il sito è in emulazione con EasyPHP su XP, possibile che ci sia questo errore di visualizzazione anche ora che il formato della data è in 'date'?
    Esiste qualche altro modo per far visualizzare la data forzatamente quando è precedente al 1970?

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Le variabili concatenale col trattino e non con lo slash in fase di inserimento.

    e poi le estrai nel formato che vuoi con date_format

    select campo1,campo2,date_format(campo_data,'%d/%m/%Y') as data_it from tabella

    il campo lo trovi nell'alias. Nell'esempio $row['data_it'].

  4. #4
    Perfetto Nicola la data ora la vedo ma restano due piccoli dubbi.

    1- se voglio visualizzare solo il giorno o il mese della variabile $row['data_it'] che sintassi devo seguire?

    2- per inserire nel dbase anche l'ora,min e sec. la sintassi è questa?

    $data = $_POST['anno']."/".$_POST['mese']."/".$_POST['giorno']." ".$_POST['ore'].":".$_POST['minuti'].":".$_POST['secondi'];

    Grazie tante.

    ciao

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Legoland
    Perfetto Nicola la data ora la vedo ma restano due piccoli dubbi.

    1- se voglio visualizzare solo il giorno o il mese della variabile $row['data_it'] che sintassi devo seguire?

    2- per inserire nel dbase anche l'ora,min e sec. la sintassi è questa?

    $data = $_POST['anno']."/".$_POST['mese']."/".$_POST['giorno']." ".$_POST['ore'].":".$_POST['minuti'].":".$_POST['secondi'];

    Grazie tante.

    ciao
    1) basta che nella query specifichi ciò che vuoi recuperare
    date_format(campo_data,'%d') // solo giorno
    date_format(campo_data,'%m') // solo mese

    2) per mettere anche un orario ti serve un campo datetime e puoi usare now() per inserire data e ora attuale.

  6. #6
    Perfetto, ora va.
    Ma non esiste la possibilità via PHP -senza ricorrere alla query- di estrarre solo il mese etc?
    Dovrei eventualmente giocare sulle funzioni dedicate alle stringhe... no?

    riciao.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    $data = '2006-10-30';
    list($anno,$mese,$giorno) = explode('-',$data);

    hai le tre variabili e ci fai quello che vuoi.

  8. #8
    Perfetto, grazie di tutto!

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.