Joomla.it Forum
Non solo Joomla... => Sviluppo => : 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!
-
...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
-
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!!!
-
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
-
Se non sono scemo dovrebbe essere così?
(preg_match ("/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/", $date, $parts))
-
:) ..funziona?
M.
-
ancora non ho potuto effettuare la modifica, in giornata la farò e vi farò sapere!