Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25
  1. #11
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    sisi certo nulla da dire ma riguardo l'errre nn mi hai proprio capito.

    So che mktime ha i suoi controlli, puoi usare acnche checkdate se ti va di essere preciso ...

    Il problema e' che passi una data malformata gli explode non funzionano, nella mktime arrivano stringhe , dati nulli o incoerenti,
    Se il server e' impostato per visualizzare warnings/errori ne vengono sollevati un sacco a ogni var null vuota o ineistente ...

    Non c'entra nulla l'mktime e' prima il problema,nel codice che esegue quelle maree di explode non controllate.
    E controllare i dati a quel livello ... ben serve codice...

    in 3 righe faccio tutto lo stesso e alla fine ho un oggetto dateTime con il quale posso eseguire un sacco di operazioni successivamente senza necessitare di inserire ulteriori acrocchi nel codice...

    Secondo me e' meglio usare la classe dateTime ed e' ancora meglio iniziare a familiarizzare con essa e buttare via le soluzioni precedenti. In favore di codice piu' pulito e con meno probabilità di errore.

    Poi fa te.... se vuoi continuare ad impazzire a fare mktime explode etc..... in bocca al lupo.

  2. #12
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Ok, adesso ho capito a cosa ti riferivi.
    Beh, se i dati da maneggiare non li inserisce a mano un utente, ma vengono ad esempio messi nel DB con una query in cui c'è NOW(), non vedo come possa scrivere male il formato della data e come possano fallire gli explode.

    Poi se c'è da gestire l'input di un utente è un altro paio di maniche e il tuo discorso ci può stare, ma anche lì basta creare per bene il form per l'inserimento e mettere insieme i dati che arrivano.
    Io non mi sognerei mai di far scrivere una stringa del tipo gg/mm/aaaa ad un utente pretendendo che non commetta errori nello scrivere (magari invece degli slash ci mette un trattino o altro, gli utenti sono imprevedibili), nei mie form metto 3 campi select e i 3 dati li metto assieme io in una stringa.
    Stessa cosa per l'ora.

    Una volta che il codice che prende i dati e forma la stringa è corretto, non è che a caso genera stringhe non corrette o con separatori diversi.

  3. #13
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    certo ma come vedi serve codice di controllo aggiuntivo ...

    Vabbe non ne verrai mai fuori ho capito.... buona morte con explode e mktime... io continuo usando dateTime...

    Chiudo. Tanto e' inutile.

  4. #14
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Originariamente inviato da Mariastella1975
    .......................
    $risultato[data] contenente la data in questo formato 2001-01-02
    $risultato[ora] contenente l'orario in questo formato 12:15:00
    .......................
    I campi sono di tipo date e time?
    prova con date_format + concat
    codice:
    SELECT *,date_format(concat(data,' ',ora),'%d,%m,%Y,%H,%i,%s') as data_form FROM `tabella`
    Magari forza il tipo con CAST
    http://dev.mysql.com/doc/refman/5.5/...#function_cast
    Oppure
    codice:
    SELECT *,concat(date_format(data,'%d,%m,%Y'),',',date_format(ora,'%H,%i,%s')) as data_form FROM `tabella`
    oppure non le concatenare , formattale e uniscile con php...
    Ma non vedo l'utilità di rimaneggiarle dopo la query...

    se data e ora vengono dalla stessa tabella perchè non usi direttamente un campo datetime?
    http://dev.mysql.com/doc/refman/5.5/...on_date-format (assomiglia a date()/gmdate() di PHP)
    http://dev.mysql.com/doc/refman/5.5/en/datetime.html

  5. #15
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Come ti ripeto non mi sto impuntando sull'uso di mktime (tra l'altro mai servito nelle mie applicazioni) e quanto detto sopra, si sta semplicemente discutendo sull'uso di un sistema e dell'altro.

    Tutto quel codice di cui parli lo devi mettere anche se usi DateTime, perché l'input degli utenti va controllato sempre e comunque, a prescindere da come lo userai.

  6. #16
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    ribadisco

    Codice PHP:

    /* 1 */ $pattern '/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}\ [0-9]{2}\:[0-9]{2}\:[0-9]{2}$/' ;
    /* 2 */ $format  "Y-m-d H:i:s" ;

    /* 3 */  if( !preg_match$pattern,$date ) )
    /* 4 */ { die("FORMATO DATA ERRATO!") ; }

    /* 5 */ $myDate DateTime::createFromFormat($format,$date) ;
    /* 6 */ $timestamp $myDate->getTimestamp();

    // Aggiunta controllo finale
    /* 7 */ 
    if(  $date != date($format,$timestamp)  )
    /* 8 */ { die("error");} 
    Ho aggiunto solo 2 righe alla fine.
    I controlli ci sono tutti, sono molto semplici facili da leggere ed eventualemtne da modificare.
    Se ti servono controlli aggiuntivi tipo data >oggi+10 giorni etc... con l'oggetto date puoi eseguire diff,add, sub etc... e in 2 righe aggiungi tutti i controlli che vuoi, controlli sanitizzati in quanto tali metodi gia' considerano ora legale/solare e anni bisestili etc...

    Prova ad aggiungere i controlli alla tua procedura ... a tutti quegli explode etc...

  7. #17
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Quello che tu dai per scontato è che si abbia a disposizione un campo data, che tu identifichi con la variabile $date, già pronto, ma così non è.

    Ha 2 variabili, una con la data, $risultato['data'], e una con l'ora, $risultato['ora'], quindi vanno comunque manipolate, perché nel tuo codice non si possono usare così come sono.

  8. #18
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    guarda... sinceramente che fatica c'e' a concatenarle ?

    O ad impostare 2 reg exp di controllo ?
    IO non so cosa c'e' sopra e il codice postato e' facilmente utilizzabile

    $data = $risultato['data']." ".$risultato['ora'] ;

    .... continuo a non vedere difficoltà / necessità di usare explode.

    Mi sa che sei nello status =>

  9. #19
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Ancora con questa storia dell'impuntamento.
    O sei tu che ti impunti o non capisci l'italiano.

    3° tentativo: si sta solo discutendo sull'uso di uno o dell'altro sistema, non mi importa nulla quale dei due verrà utilizzato, non prendo soldi se convinco qualcuno ad usare la funzione explode.

    Detto questo, che differenza c'è nell'usare 2 righe di explode o 2 righe di regexp (che in genere per i novizi sono ben più ostiche)?

  10. #20
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Assolutamente nessuna

    Come ho gia' detto e ripetuto sopra... e non capisco perche' ne stiamo ancora discutendo visto che Mariastella1975 e' praticamente sparito, ha tirato il sasso noi stiamo discutendo e lui non partecipa...

    Beh secondo me e' inutile proseguire oltre le soluzioni sono state proposte... sono circa equivalenti (anche se la mia e' migliore ) ora sta ad Mariastella1975 vedere, valutare, decidere... ma se non vedo feedback da parte sua entro breve chiudo.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.