data e mesi [RISOLTO]
Moderatore: mod Documentazione
data e mesi [RISOLTO]
come si fa a modificare la data in modo tale che appaia nel formato gg/mm/aaaa?
per i mesi? da inglese->italiano
osc2.2m2+ita
grazie!!!
per i mesi? da inglese->italiano
osc2.2m2+ita
grazie!!!
come aveva detto un cert blk
Infatti comincia a visualizzare le date in italiano(già buona cosa) sia come parole che come posizioni, ma quando le richiede in scrittura il controllo viene ancora fatto mese/giorno/anno . Almeno questo succede a me
Sto vedendo come si puo fare ..se intanto qualcuno ha idee.. benvenga
solo che non va tutto tutto a posto.su che piattaforma hai installato il sito?
io usando una Debian 3.0 ho come valore it_IT@euro
Questo parametro lo setti nel file /catalog/lincludes/languages/italian.php
cerchi la riga
setlocale(LC_TIME, 'it_IT@euro');
e cambi il valore in base a come e' settato sul tuo server.
Infatti comincia a visualizzare le date in italiano(già buona cosa) sia come parole che come posizioni, ma quando le richiede in scrittura il controllo viene ancora fatto mese/giorno/anno . Almeno questo succede a me
Sto vedendo come si puo fare ..se intanto qualcuno ha idee.. benvenga
prova con
Codice: Seleziona tutto
@setlocale(LC_TIME, 'it_IT.ISO8859-1');
??por que?
?? a che pro??BluEdoG ha scritto:prova con
Codice: Seleziona tutto
@setlocale(LC_TIME, 'it_IT.ISO8859-1');
questo era il valore che esisteva gia da prima, di default.
e va bene se si decide di mettere le date mese/giorno /anno
ma noi stiamo parlando di poter sia leggere le date in italiano
(lunedi al posto di monday )
sia immettere le date in maniera giorno/mese /anno
non penso sia sufficiente (per entrambe le cose ) cambiare quel valore.
Altri suggerimenti?
Re: ??por que?
dunque, per modificare la data in gg/mm/aaaa lo devi fare modificando all'occorrenza il file di linguaggio (che dovrebbe essere già giusto) italian.php
in pratica non dovreste aver riscontrato problemi... se poi volete che anche in inglese le date siano uguali all'italiano dovete fare le modifiche di conseguenza.
Codice: Seleziona tutto
@setlocale(LC_TIME, 'it_IT.ISO8859-1');
define('DATE_FORMAT_SHORT', '%d/%m/%Y'); // this is used for strftime()
define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime()
define('DATE_FORMAT', 'd/m/Y'); // this is used for date()
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');
saluti, Caneblu
[ www.caneblu.com ]
[ www.caneblu.com ]
Re: ??por que?
ho fatto come dici e mi MOSTRA le date in italianoBluEdoG ha scritto:dunque, per modificare la data in gg/mm/aaaa lo devi fare modificando all'occorrenza il file di linguaggio (che dovrebbe essere già giusto) italian.php
in pratica non dovreste aver riscontrato problemi... se poi volete che anche in inglese le date siano uguali all'italiano dovete fare le modifiche di conseguenza.
(cosa che mi faceva anche col valore che avevo messo prima
setlocale(LC_TIME, 'italian');
il fatto è che IN SCRITTURA prende solo date mm/gg/anno
(ad esempio moificando i dati cel cliente o iscrivendo un nuovo cliente)
ciao
Re: ??por que?
beh in scrittura è ovvio, da quello che so io è un passaggio obbligato per scrivere sul db (per convenzione presumo). Anche le cifre hanno una anomalia, la virgola indica le migliaia (per noi il punto) mentre viceversa il punto indica i decimali.giobertox ha scritto: il fatto è che IN SCRITTURA prende solo date mm/gg/anno
(ad esempio moificando i dati cel cliente o iscrivendo un nuovo cliente)
Poi pero' quando vengono ripescati i dati, tutte le date e cifre vegono tradotte in base a quanto scritto nel file italian.php (sia per admin che per catalog). Mi pare che nei siti che ho fatto tutte le date siano nel formato corretto.
saluti, Caneblu
[ www.caneblu.com ]
[ www.caneblu.com ]
Re: ??por que?
ok , allora se è obbligato , lo lascio cosibeh in scrittura è ovvio, da quello che so io è un passaggio obbligato per scrivere sul db (per convenzione presumo). Anche le cifre hanno una anomalia, la virgola indica le migliaia (per noi il punto) mentre viceversa il punto indica i decimali.
Poi pero' quando vengono ripescati i dati, tutte le date e cifre vegono tradotte in base a quanto scritto nel file italian.php (sia per admin che per catalog). Mi pare che nei siti che ho fatto tutte le date siano nel formato corretto.
(anche per evitare troppi casini con aggiunta di altri moduli.)
grazie
Re: ??por que?
Probabilmente, anzi sicuramente, puoi modificare le date nel formato italiano direttamente sul mysql, (e di conseguenza scrivere nel formato giusto) ma poi c'è sempre il rischio di "scontrarsi" con altre contribution che usano il formato originale.
saluti, Caneblu
[ www.caneblu.com ]
[ www.caneblu.com ]
Ciao ragazzi, visto che in questo mese ho 'scroccato' un po' di info da voi, ora posto un po' di farina del mio sacco per risolvere il problema della data in 'formato anglosassone' per intenderci (sperando che non fosse già stato risolto in qualche modo).
Premetto che lavoro su OsC 2.2 MS1.
in admin:
----------------------------------------------------
customers.php
intorno alla riga 30
#if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($customers_dob);
if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = substr(tep_date_raw($customers_dob), 0, 4) . substr(tep_date_raw($customers_dob), 6, 2) . substr(tep_date_raw($customers_dob), 4, 2);
--------------------------------------------------------------------------
in catalog:
----------------------------------------------------
create_account_process.php
account_edit_process.php
intorno alla riga 65
#if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4))) {
if (checkdate(substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 0, 4))) {
intorno alla riga 260
#if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = tep_date_raw($dob);
if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = substr(tep_date_raw($dob), 0, 4) . substr(tep_date_raw($dob), 6, 2) . substr(tep_date_raw($dob), 4, 2);
-----------------------------------------------------------------------
Ovviamente occorrerà poi andare a correggere i file con le traduzioni , dove si riporta un esempio di data.
Ciao!
Premetto che lavoro su OsC 2.2 MS1.
in admin:
----------------------------------------------------
customers.php
intorno alla riga 30
Codice: Seleziona tutto
$sql_data_array = array('customers_firstname' => $customers_firstname,
'customers_lastname' => $customers_lastname,
'customers_email_address' => $customers_email_address,
'customers_telephone' => $customers_telephone,
'customers_fax' => $customers_fax,
'customers_newsletter' => $customers_newsletter);
if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $customers_gender;
if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = substr(tep_date_raw($customers_dob), 0, 4) . substr(tep_date_raw($customers_dob), 6, 2) . substr(tep_date_raw($customers_dob), 4, 2);
Codice: Seleziona tutto
tep_db_perform(TABLE_CUSTOMERS, $sql_data_array, 'update', "customers_id = '" . tep_db_input($customers_id) . "'");
in catalog:
----------------------------------------------------
create_account_process.php
account_edit_process.php
intorno alla riga 65
Codice: Seleziona tutto
if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
$error = true;
$entry_lastname_error = true;
} else {
$entry_lastname_error = false;
}
if (ACCOUNT_DOB == 'true') {
if (checkdate(substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 0, 4))) {
intorno alla riga 260
Codice: Seleziona tutto
$sql_data_array = array('customers_firstname' => $firstname,
'customers_lastname' => $lastname,
'customers_email_address' => $email_address,
'customers_telephone' => $telephone,
'customers_fax' => $fax,
'customers_newsletter' => $newsletter,
'customers_password' => tep_encrypt_password($password),
'customers_default_address_id' => 1);
if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $gender;
if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = substr(tep_date_raw($dob), 0, 4) . substr(tep_date_raw($dob), 6, 2) . substr(tep_date_raw($dob), 4, 2);
-----------------------------------------------------------------------
Ovviamente occorrerà poi andare a correggere i file con le traduzioni , dove si riporta un esempio di data.
Ciao!
-
- membro Junior
- Messaggi: 6
- Iscritto il: 19/11/2003, 1:00
- Località: Roma - Italia
- Contatta:
Salve a tutti...
Sto usando osCommerce 2.2MS2...
In italian.php ho visto che c'e' una funzione tep_date_raw (che e' la stessa che ho visto elencata nella patch qua sopra).
Mi son chiesto: ma come mai la mettono li' nel file della lingua? Sara' mica quella da modificare per cambiare il formato da mmddyyyy in ddmmyyyy anche nell'inserimento?
Cercando un po' su internet ho trovato qualcuno che suggeriva di cambiare la funzione da
a qualcosa tipo
Ho provato e la cosa pare funzionare... Riesco a registrare gli utenti usando il formato italiano per la data...
Secondo voi la cosa succede per miracolo (tipo perche' in realta' non ho il locale it_IT.ISO8859-1 installato sul mio computer, o roba simile) oppure la cosa ha un senso ed e' affidabile?
Giusto per evitare di ritrovarmi tutti i dati "rovinati" (non era il termine che avrei voluto usare.. )
Grazie, ciao!
Andrea
Sto usando osCommerce 2.2MS2...
In italian.php ho visto che c'e' una funzione tep_date_raw (che e' la stessa che ho visto elencata nella patch qua sopra).
Mi son chiesto: ma come mai la mettono li' nel file della lingua? Sara' mica quella da modificare per cambiare il formato da mmddyyyy in ddmmyyyy anche nell'inserimento?
Cercando un po' su internet ho trovato qualcuno che suggeriva di cambiare la funzione da
Codice: Seleziona tutto
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 0, 2) . substr($date, 3, 2);
}
}
Codice: Seleziona tutto
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
}
}
Secondo voi la cosa succede per miracolo (tipo perche' in realta' non ho il locale it_IT.ISO8859-1 installato sul mio computer, o roba simile) oppure la cosa ha un senso ed e' affidabile?
Giusto per evitare di ritrovarmi tutti i dati "rovinati" (non era il termine che avrei voluto usare.. )
Grazie, ciao!
Andrea
no, funziona e stop .Ho provato e la cosa pare funzionare... Riesco a registrare gli utenti usando il formato italiano per la data...
Secondo voi la cosa succede per miracolo (tipo perche' in realta' non ho il locale it_IT.ISO8859-1 installato sul mio computer, o roba simile) oppure la cosa ha un senso ed e' affidabile?
Giusto per evitare di ritrovarmi tutti i dati "rovinati" (non era il termine che avrei voluto usare.. )
Grazie, ciao!
Andrea
mi ero dimenticato di cercare cmoe avevo risolto io
quindi ribadisco , facendo come hai appena detto poi funziona tutto senza prob
basta cambiare entrambe le pagine italian.php (anche la parte admin) e poi non serve fare altro
Codice: Seleziona tutto
function tep_date_raw($date, $reverse = false) {
if ($reverse) {
return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4);
} else {
return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
}
}
da dove scrivi linuxaro?
[/code]
Benissimo! Grazie della info. Anche perche' mi ero dimenticato di modificare anche la parte admin, ehm!no, funziona e stop .
mi ero dimenticato di cercare cmoe avevo risolto io
quindi ribadisco , facendo come hai appena detto poi funziona tutto senza prob
basta cambiare entrambe le pagine italian.php (anche la parte admin) e poi non serve fare altro
Acc, l'avatar che mi metto nei forum mi tradisce subito!ora penso proprio si possa dire che il prob data italiana è RISOLTO
da dove scrivi linuxaro?
Per paranoia e per evitare di impestare il thread con cose inutili, ti mando un PM...
Ciao,
Andrea