Pentru afisarea datei şi orei in formatul «ZZ MMMM YYYY | hh:mm» (luna în română) am căutat să folosesc diferite metode, astfel încât să pot exemplifica modalităţi diferite de lucru cu funcţiile. Acest articol este o oarecare continuare a exemplificărilor de la acest link.
$data_test=”2014-04-02 23:10:25″;
Dacă se doreşte înlocuirea delimitatorului, se poate folosi combinarea funcţiilor implode & explode:
1 2 |
$string='2014-04-22 23:10:25'; implode('.', explode('-', $string)); // va afisa 2014.04.22 23:10:25 |
Folosind explode, se pot extrage elementele datei:
1 2 3 4 |
<?php $data_init = '2014-04-22'; $elem = explode('-', $data_init); $data_fin = $elem[2].'-'.$elem[1].'-'.$elem[0]; // va afisa 22-04-2014 |
Varianta 1
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php function fc_ZLAOM_luna_ro($data_ora) { $nrLuna= date("n",strtotime($data_ora)); $luni = array (1=>'ianuarie',2=>'februarie',3=>'martie',4=>'aprilie',5=>'mai',6=>'iunie',7=>'iulie',8=>'august',9=>'septembrie',10=>'octombrie',11=>'noiembrie',12=>'decembrie'); $nume_luna=$luni[(int)$nrLuna]; $zi= date("j",strtotime($data_ora)); $an = date("Y",strtotime($data_ora)); $ora = date("H",strtotime($data_ora)); $min= date("i",strtotime($data_ora)); RETURN $zi.' ' .$nume_luna.' '.$an.' | '.$ora.':'.$min; } // afişează 2 aprilie 2014 | 23:10 ECHO '<pre>Exemplu: <strong>'. fc_ZLAOM_luna_ro($data_test).'</strong></pre>'; ?> |
Varianta 2
1 2 3 4 5 6 7 8 |
<?php function fc_ZLAOM_luna_ro($data_ora) { setlocale(LC_ALL, 'ro_RO.utf-8'); // ou LC_TIME $data_ora= strftime('%e %B %G | %H:%M', strtotime($data_ora)); RETURN $data_ora; } // afişează 2 aprilie 2014 | 23:10 ECHO '<pre>Exemplu: <strong>'. fc_ZLAOM_luna_ro($data_test).'</strong></pre>'; ?> |
Nota: conform PHP.net strftime este depreciată, de la PHP 8.1.0
Varianta 3
1 2 3 4 5 6 7 8 9 10 |
<?php function fc_ZLAOM_luna_ro($data_ora) { $luni_en = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $luni_ro = array("ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"); $data_ora = date("j F Y | H:i",strtotime($data_ora)); $data_ora = str_ireplace($luni_en, $luni_ro, $data_ora); return $data_ora; } // afişează 2 aprilie 2014 | 23:10 ECHO '<pre>Exemplu: <strong>'. fc_ZLAOM_luna_ro($data_test).'</strong></pre>'; ?> |
Varianta 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php function fc_ZLAOM_luna_ro($data_ora) { $zi= date("j",strtotime($data_ora)); $luna= date("n",strtotime($data_ora)); $an = date("Y",strtotime($data_ora)); $ora = date("H",strtotime($data_ora)); $min= date("i",strtotime($data_ora)); $luni = array( 1=>"ianuarie" , 2=>"februarie" , 3=>"martie" , 4=>"aprilie" , 5=>"mai" , 6=>"iunie" , 7=>"iulie" , 8=>"august" , 9=>"septembrie" , 10=>"octombrie" , 11=>"noiembrie" , 12=>"decembrie" ); FOREACH ($luni AS $luna=> $nume_luna) { IF( $luna==date("n",strtotime($data_ora)) ) { RETURN $zi.' ' .$nume_luna.' '.$an.' | '.$ora.':'.$min; BREAK; } } } // afişează 2 aprilie 2014 | 23:10 ECHO '<pre>Exemplu: <strong>'. fc_ZLAOM_luna_ro($data_test).'</strong></pre>'; ?> |
Varianta 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<?php function fc_ZLAOM_lit($data_ora) { $zi= date("j",strtotime($data_ora)); $luna= date("n",strtotime($data_ora)); $an = date("Y",strtotime($data_ora)); $ora = date("H",strtotime($data_ora)); $min= date("i",strtotime($data_ora)); switch ($luna) { case 1: $luna= "ianuarie"; break; case 2: $luna= "februarie"; break; case 3: $luna= "martie"; break; case 4: $luna= "aprilie"; break; case 5: $luna= "mai"; break; case 6: $luna= "iunie"; break; case 7: $luna= "iulie"; break; case 8: $luna= "august"; break; case 9: $luna= "septembrie"; break; case 10: $luna= "octombrie"; break; case 11: $luna= "noiembrie"; break; case 12: $luna= "decembrie"; break; default: $luna= "eroare"; } return $zi.' ' .$luna.' '.$an.' | '.$ora.':'.$min; } // afişează 2 aprilie 2014 | 23:10 ECHO '<pre>Exemplu: <strong>'. fc_ZLAOM_lit($data_test).'</strong></pre>'; ?> |
Varianta 6
Sursa: StackOverflow.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
<?php function fc_ZLAOM_luna_ro($data_ora) { $an = date("Y",strtotime($data_ora)); $luna = ucfirst(strtolower(trim(date("M",strtotime($data_ora))))); $zi= date("j",strtotime($data_ora)); $ora = date("H",strtotime($data_ora)); $min= date("i",strtotime($data_ora)); SWITCH ($luna) { CASE "January": CASE "Jan": $nume_luna = "ianuarie"; BREAK; CASE "February": CASE "Feb": $nume_luna = "februarie"; BREAK; CASE "March": CASE "Mar": $nume_luna = "martie"; BREAK; CASE "April": CASE "Apr": $nume_luna = "aprilie"; BREAK; CASE "May": $nume_luna = "mai"; BREAK; CASE "June": CASE "Jun": $nume_luna = "iunie"; BREAK; CASE "July": CASE "Jul": $nume_luna = "iulie"; BREAK; CASE "August": CASE "Aug": $nume_luna = "august"; BREAK; CASE "September": CASE "Sep": $nume_luna = "septembrie"; BREAK; CASE "October": CASE "Oct": $nume_luna = "octombrie"; BREAK; CASE "November": CASE "Nov": $nume_luna = "noiembrie"; BREAK; CASE "December": CASE "Dec": $nume_luna = "decembrie"; BREAK; DEFAULT: $nume_luna = false; BREAK; } RETURN $zi.' ' .$nume_luna.' '.$an.' | '.$ora.':'.$min; } // afişează 2 aprilie 2014 | 23:10 ECHO '<pre>Exempluq: <strong>'. fc_ZLAOM_luna_ro($data_test).'</strong></pre>'; ?> |
Extragerea componentelor dată-timp pot fi realizate elegant, după cum am exemplificat în acest articol.
Alte variante
Afişarea simplă a datei
1 2 3 4 5 6 |
FUNCTION fc_Azi() { $azi=date('d.m.Y'); ECHO "<pre>Azi este în " . $azi."</pre>"; } fc_Azi(); // Afişează data curentă la momentul apelării funcţiei (Ex.: Azi este în 18.07.2022) |
$data_test=”2014-04-02 23:10:25″;
Afisarea datei şi orei in formatul «ZZ.LL»
1 2 3 4 5 |
<?php function fc_ZL_num($data_ora) { return date_format(date_create($data_ora),"d.m"); } // afisează 02.04 ECHO '<pre>Exemplu: <strong>'. fc_ZL_num($data_test).'</strong></pre>'; ?> |
Afisarea datei şi orei in formatul «ZZ.LL.YYYY | hh:mm»
1 2 3 4 5 |
<?php function fc_ZLAOM_num($data_ora) { return date_format(date_create($data_ora),"d.m.Y | H:i"); } // afisează 02.04.2014 | 23:10 ECHO '<pre>Exemplu: <strong>'. fc_ZLAOM_num($data_test).'</strong></pre>'; ?> |
Afisarea datei şi orei in formatul «LLL ZZ, YYYY hh:mm:ss»
1 2 3 4 |
<?php function fc_LZAOMS_num($data_ora) { return date_format(date_create($data_ora),"M j, Y H:i:s");} // afişează Apr 02, 2014 23:10:25 ECHO '<pre>Exemplu: <strong>'. fc_LZAOMS_num($data_test).'</strong></pre>'; ?> |
Afisarea datei şi orei in formatul «ZZ MMMM YYYY | hh:mm» (luna în română)
1 2 3 4 5 6 7 8 9 10 |
<?php function fc_ZLAOM_luna_ro($data_ora) { $luni_en = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $luni_ro = array("ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"); $data_ora = date("j F Y | H:i",strtotime($data_ora)); $data_ora = str_ireplace($luni_en, $luni_ro, $data_ora); return $data_ora; } // afişează 2 aprilie 2014 | 23:10 ECHO '<pre>Exemplu: <strong>'. fc_ZLAOM_luna_ro($data_test).'</strong></pre>'; ?> |
Funcţie dinamică
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
function fc_data_dinam($data_viz, $delim, $an, $tip, $timp=null) { $data_viz = strtotime($data_viz); IF ($timp==1) {$oramin=" H:i";} ELSE {$oramin="";} SWITCH($an) { CASE 0: $an=""; BREAK; CASE 2: $an="y"; BREAK; CASE 4: $an="Y"; BREAK; } SWITCH($tip) { CASE "y4m2d2": $data_viz = date('Y'.$delim.'m'.$delim.'d'.$oramin, $data_viz); BREAK; CASE "d2m2y4": $data_viz = date('d'.$delim.'m'.$delim.$an.$oramin, $data_viz); BREAK; CASE "d2m3y4": $data_viz = date('d'.$delim.'M'.$delim.$an.$oramin, $data_viz); $luni_en = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); $luni_ro = array("ian", "feb", "mar", "apr", "mai", "iun", "iul", "aug", "sep", "oct", "nov", "dec"); $data_viz = str_ireplace($luni_en, $luni_ro, $data_viz); BREAK; CASE "d2m4y4": $data_viz = date('d'.$delim.'F'.$delim.$an.$oramin, $data_viz); $luni_en = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $luni_ro = array("ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"); $data_viz = str_ireplace($luni_en, $luni_ro, $data_viz); BREAK; } return $data_viz; } |
- $delim poate fi slash, spaţiu, punct sau orice alt delimitator convenţional (după caz);
- $an poate fi:
- 0 (nu va apărea nimic),
- 2 (va fi format din două cifre) sau
- 4 (va fi format din patru cifre);
- $tip – este un fel de acronim pentru modul în care va fi afişată data, unde litera sugerează elementul datei (d – ziua, m – luna, y – anul), iar cifra de după fiecare literă denotă din câţi digiţi va fi redat acel element:
- y4m2d2 – yyyy-mm-dd;
- d2m2y4 – dd.mm.yyyy;
- d2m3y4 – dd.mmm.yy;
- d2m4y4 – dd mmmm yyyy.
- $timp poate să lipsească (similar cu valoarea 0). Dacă e 1 va afişa şi ora sub forma hh:mm;
Exemple
1 2 3 4 5 6 |
<?php $string='09/29/2022'; ECHO fc_data_dinam($string,'-', 4, "y4m2d2", 1); // afiseaza 2022-09-29 00:00 ECHO fc_data_dinam($string,'.', 4, "d2m2y4", 1); // afiseaza 29.09.2022 00:00 ECHO fc_data_dinam($string,'.', 2, "d2m3y4", 0); // afiseaza 29.sep.22 ECHO fc_data_dinam($string,' ', 0, "d2m4y4", 0); // afiseaza 29 septembrie |