Sākums » Programmēšana, php, phpTip

php tip #4

19.05.2009 11:13 229 skatījumi 9 komentāri

Formatējam datumu no DB timestamp uz cilvēkiem patīkamāku formātu

/**
*
* Transform date from DB timestamp to readable date
*
* @param datetime - DB timestamp YYYY-MM-DD HH:ii:ss
* @param int - transform type (0 - 6, 10)
* 	0 - 2009-01-27
* 	1 - 2008-12-24 20:15:10
* 	2 - Example: 23.06.2008.
* 	3 - Example: 03.05.2005. plkst. 21:34
* 	4 - Example: 2009. gada 1. janvārī
* 	5 - Example: 2009. gada 1. janvārī, plkst. 23:17
* 	6 - Example: 23:45
* 	7 - Example: 11:22 AM
* 	8 - Example: 2009.02.15 11:22 AM
* 	9 - Example: 2009.02.15 23:22
* 	10 - Example: janvāris
* @return string - formated time
*/
function formatDate($timestamp, $type = 0){
	$months1 = array ("jan", "feb", "mar", "apr", "mai", "jūn", "jūl", "aug", "sep", "okt", "nov", "dec");
	$months2 = array ("janvārī", "februārī", "martā", "aprīlī", "maijā", "jūnijā", "jūlijā", "augustā", "septembrī", "oktobrī", "novembrī", "decembrī");
	$months3 = array ("janvāris", "februāris", "marts", "aprīlis", "maijs", "jūnijs", "jūlijs", "augusts", "septembris", "oktobris", "novembris", "decembris");
	switch ($type){
		case 0:
			return date('Y-m-d', strtotime($timestamp));
			break;
		case 1:
			return date('Y-m-d H:i:s', strtotime($timestamp));
			break;
		case 2:
			return date('d.m.Y.', strtotime($timestamp));
			break;
		case 3:
			return sprintf(date("d.m.Y. \%\s H:i", strtotime($timestamp)), 'plkst');
			break;
		case 4:
			return sprintf(date("Y. \%\s d. \%\s", strtotime($timestamp)), 'gada', $months2[intval(date('n', strtotime($timestamp)))-1]);
			break;
		case 5:
			return sprintf(date("Y. \%\s d. \%\s, \%\s H:i", strtotime($timestamp)), 'gada', $months2[intval(date('n', strtotime($timestamp)))-1], 'plkst');
			break;
		case 6:
			return date('H:i', strtotime($timestamp));
			break;
		case 7:
			return date('h:i A', strtotime($timestamp));
			break;
		case 8:
			return date('Y.m.d. h:i A', strtotime($timestamp));
			break;
		case 9:
			return date('Y.m.d. H:i', strtotime($timestamp));
			break;
		case 10:
			return $months3[intval(date('n', strtotime($timestamp)))-1];
			break;
		default:
			return strtotime($timestamp);
			break;
	}
}
Autors: gusc (gusc)
VN:F [1.2.3_620]
Rating: 4.3/5 (3 votes cast)
  • asdfg

    Neekonomiski kaut kā pie katra return izmantot strtotime($timestamp) :)
    Šo es liktu pirms switch. Tā arī pēc tam būtu vieglāk funkciju pilnveidot, ja vajadzētu, t.i. varētu padot ne tikai Y-m-d H:i:s formātā.

    VA:F [1.2.3_620]
    Rating: 4.0/5 (4 votes cast)
    1
  • burlaks

    esmu pilnigi velti izterejis laiku spiezhot uz jusu bannerkluci tvnetaa, un tris reizes shajaa piecu rakstu apshaubaamajaa bloģelī – jus ko nopietni domajat ka SHitas ir “resurss”? te kaut kada struktura nav vispar paredzeta;

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    2
  • web-dev Bot www

    šis vel top par labu un kvalitatīvu resursu, ja ir kādi ieteikumi labprāt tos uzklausīsim.

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    3
  • Roberts

    Mazliet nepārdomāta funkcija. Bet tā vien rādas ka te apgrozās tikai new school koderi, par to liecina vien tas, ka aiz visa šitā slēpjas kautkāds wordpress ar werry apšaubāmu dizainu un saturu. Cerams, tas ar laiku mainīsies. Veiksmi

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    4
  • web-dev Bot www

    2 Roberts paldies par labiem vārdiem, ja vēlies pievienoties komandai un ievietot rakstus, droši dod ziņu, ja iesūtīsi rakstu līdz 03.06.2009 paspēsi vel piedalīties konkursā vairāk lasi šeit http://web-dev.lv/2009/04/konkurss/

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    5
  • Anpher

    asdfg, īstenībā nav tik traki, jo tas ir switch, kas nozīmē to, ka jebkurā gadījumā izpildīsies tikai viens return un arī tikai tie strtotime(), kas ir pie šī return
    Kas atkal ir cita – neredzu šādas funkcijas jēgu (izņemot gadījumus, kad vajadzīgi latviski mēnešu nosaukumi). Kāda man ir atšķirība, izsaukt šo funkciju vai date($format, $timestamp) ?

    P.S. case 1 – lol?

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    6
  • moo

    Ir gan traki :D

    Kāda X pēc vajadzētu datumu formātus apzīmēt ar kaut kādiem cipariņiem.. vismaz konstantes tad nodefinēt vajag.

    Vienā case’ē dažviet tur divi strtotime() ar vienādu argumentu izpildās.

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    7
  • Wuu www

    Man nestrādā vispār visu laiku 1970 gadu rāda :D

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    8
  • banesto

    1) kas vainas wordpressam?
    2) dizains arī ir sakarīgs.
    3) nevajag pārmest mazo saturu, labāk priecājies, ka kāds vispār raksta un dalās domās, būdams vai nebūdams new-school.
    4) funkcija neslikta. ekonomiskuma dēļ, strtotime arī būtu licis pirms switch, lai īsāks, lakoniskāks, pārskatāmāks kods
    5) stulbi apriet raksta autoru, vajag tikai konstruktīvu kritiku

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    9
  • Nav nevienas atsauces

Ir ko teikt?

Vari izmantot:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Raksta komentāru RSS