Joomla.it Forum

Non solo Joomla... => Sviluppo => : oxfrancescoxo 17 Nov 2009, 14:29:19

: Espressione Valid Date
: oxfrancescoxo 17 Nov 2009, 14:29:19
Salve ragazzi, devo modificare l'espressione :
0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d

che mi restituisce yyyy/mm/dd e vorrei impostarla dd/mm/yyyy

Aiutamemi please!
: Re:Espressione Valid Date
: mau_develop 17 Nov 2009, 16:28:47
...ma precisamente cosa vuoi fare?

solitamente la regex non compie una funzione come formattare una data, solamente fa un match tra il pattern (regex) e la stringa e ti restituisce un true o un'occorrenza

ti conviene usare le funzioni di php per formattare la data

Se invece devi fare il match con una data nel formato che dici e non nel formato per cui la regex è impostata allora è un'altra cosa.

Comunque la data non è come dici separata da / ma da -

maurizio
: Re:Espressione Valid Date
: oxfrancescoxo 17 Nov 2009, 16:37:02
ciao, sto modificando una versione di joomla, che vieni dall'india ed il formato della loro data è yyyy-mm-dd ho modificato tutti i file in dd-mm-yyyy infatti quando seleziono dal calendario la data nel campo mi spunta dd-mm-yyyy ma quando prova ad effettuare la regista mi esce l'errore adesso risalendo dall'errore sono arrivato a quell'espressione.

Ho cercato su internet e l'espressione dovrebbe essere modificata ma non so come.

Ti allego la parte di codice:

// date validation function
   function _checkDateFormat($date)
   {
     //match the format of the date
     if (preg_match ("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $date, $parts))
     {
      //check weather the date is valid of not
       
        return true;
   
     }
     else
      return false;
   } // end of date validation

Carneade!!!
: Re:Espressione Valid Date
: mau_develop 17 Nov 2009, 19:29:35
if (preg_match ("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $date, $parts))

infatti è come ti dicevo, per lui la data è valida solo nel formato "indiano"

anche la regex è comprensibile, quella di prima no.

allora, devi capire cosa fa quella regex:

[0-9]{4} -> la prima parte della stringa deve essere un numero da 0 a 9 ripetuto 4 volte

[0-9]{2} -> segue un numero da 0 a 9 ripetuto 2 volte

[0-9]{2} -> segue un numero da 0 a 9 ripetuto 2 volte

... in mezzo vedi anche i trattini.

Ora dimmi tu come correggerla :)

Maurizio
: Re:Espressione Valid Date
: oxfrancescoxo 18 Nov 2009, 10:01:28
Se non sono scemo dovrebbe essere così?

(preg_match ("/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/", $date, $parts))
: Re:Espressione Valid Date
: mau_develop 18 Nov 2009, 11:40:16
:) ..funziona?

M.
: Re:Espressione Valid Date
: oxfrancescoxo 20 Nov 2009, 09:27:21
ancora non ho potuto effettuare la modifica, in giornata la farò e vi farò sapere!