[PHP][Tutorijal] Pretvaranje trenutnog datuma (Dan) u naziv u tjednu

Započeo Maillxx, Februar 26, 2015, 19:06:23 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Pozdrav, danas ću vam pokazat kako napraviti da iz trenutnog datuma tj. ako je danas 26.2.2015 da izvadi dan (Dan = 26) te

da mu pronaÄ'e naziv u tjednu. (26 = ÄŒetvrtak)

Krenimo.



Ovo Å¡to napravimo vrijedi za datum u formatu: 25.3.2015

1. Kreirat ćemo funkciju zvanu convert_date($date,$type)


  function convert_date($date,$type)
   {

   }


2. Zatim ćemo u tu funkciju dodati:

   $firstToc = stripos($num,"."); // Pozicija prve točke
   $secToc = strrpos($num,"."); // Pozicija druge točke u datumu

   $daySub = substr($num,0,$firstToc); // Funkciju substr() koristimo da izvadimo dan iz datuma
   $monthSub = substr($num,$firstToc,$secToc-1); // Zatim je opet koristimo da izvadimo mjesec, mjesec sadrži točku joÅ¡, kako bi se rijeÅ¡ili te točke koristimo dole funkciju zvanu explode()
   
   $monthExp = explode(".",$monthSub); // Ova funkcija briÅ¡e znak, slovo i dr. iz stringa
   $yearSub = substr($num,$secToc+1); // Na kraju opet koristimo funkciju isto za godinu


3. Sljedeće što ćemo raditi jest da nam ta funkcija da tip koji smo joj zadali $type

   if($type == 1) // Ako je zadano gore u funkciju da je tip 1 onda će izbaciti dan
   {
    return $daySub;   
   }
   else if($type == 2) // Ako je zadano gore u funkciju da je tip 2 onda će izbaciti mjesec
   {
    return $monthExp[1];   
   }
   else if($type == 3) // Ako je zadano gore u funkciju da je tip 3 onda će izbaciti godinu
   {
    return $yearSub;   
   }   

   // Možete koristiti i funkciju switch()


// Naša funkcija bi trebala izgledati ovako:


   function convert_date($num,$type)
   {
   $firstToc = stripos($num,".");
   $secToc = strrpos($num,".");

   $daySub = substr($num,0,$firstToc);
   $monthSub = substr($num,$firstToc,$secToc-1);
   $monthExp = explode(".",$monthSub);
   $yearSub = substr($num,$secToc+1);

   if($type == 1)
   {
   return $daySub;   
   }
   else if($type == 2)
   {
   return $monthExp[1];   
   }
   else if($type == 3)
   {
   return $yearSub;   
   }   
   }


4. Sljedeće što radimo jest opet nova funkcija nazvana convertDayToDayName($date)

  function convertDayToDayName($date)
   {
   
   }


5. Zatim u tu funkciju dodajemo sljedeće:

   $cDtDN_day = convert_date($date,1); // Ova će varijabla imati dan iz datuma. Zbog $type = 1;
   $cDtDN_month = convert_date($date,2); // Ova će varijabla imati mjesec iz datuma. Zbog $type = 2;
   $cDtDN_year = convert_date($date,3); // Ova će varijabla imati godinu iz datuma. Zbog $type = 3;
   
   $dayName = date("l", mktime(0,0,0,$cDtDN_month,$cDtDN_day,$cDtDN_year)); // Zatim ova varijabla pomoću funckije mktime() kreira datum koji vadi dan kao naziv (Engleski naziv).


6. Sada kako da izvadimo naziv dana iz toga, jednostavno pomoću switch() funkcije i znanja engleskog :D:

  switch ($dayName) // Sve je jasno iz priloženog
   {
   case "Monday":
   return "Ponedjeljak"; // Bezboje   
   break;
   case "Tuesday":
   return "Utorak"; // Bezboje   
   break;
   case "Wednesday":
   return "Srijeda"; // Bezboje   
   break;
   case "Thursday":
   return "Četvrtak"; // č = utf8    // Bezboje
   break;
   case "Friday":
   return "Petak"; // Bezboje   
   break;
   case "Saturday":
   return "<span style='color: #0066FF;'>Subota</span>"; // Ovo je plava boja   
   break;
   case "Sunday":
   return "<span style='color: #E60000;'>Nedjelja</span>"; // Ovo je crvena boja   
   break;

   }


// Naša funkcija bi trebala ovako izgledati

  function convertDayToDayName($date)
   {
   $cDtDN_day = $this->convert_date($date,1);
   $cDtDN_month = $this->convert_date($date,2);
   $cDtDN_year = $this->convert_date($date,3);
   
   $dayName = date("l", mktime(0,0,0,$cDtDN_month,$cDtDN_day,$cDtDN_year));

   switch ($dayName)
   {
   case "Monday":
   return "Ponedjeljak";   
   break;
   case "Tuesday":
   return "Utorak";   
   break;
   case "Wednesday":
   return "Srijeda";   
   break;
   case "Thursday":
   return "&#268;etvrtak";   
   break;
   case "Friday":
   return "Petak";   
   break;
   case "Saturday":
   return "<span style='color: #0066FF;'>Subota</span>";   
   break;
   case "Sunday":
   return "<span style='color: #E60000;'>Nedjelja</span>";   
   break;

}   
}


7. Kako koristimo ove funkcije:

  Jednostavno je

   Dodajte negdje gdje želite echo ili neÅ¡to drugo

    npr. echo  convertDayToDayName("26.2.2015"); i Dobit ćete da je taj dan četvtrak

   Možete koristiti i funkciju convert_date

    npr: echo convert_date("26.2.2015",1); Izbacit će da je dan 26

    npr: echo convert_date("26.2.2015",2); Izbacit će da je mjesec 2

    npr: echo convert_date("26.2.2015",3); Izbacit će da je godina 2015



// Upozorenje na vrh skripte dodajte ovo inaće neće radit:

   date_default_timezone_set("Europe/Zagreb"); ili vaÅ¡u timezonu



To bi bilo to nadam se da vam se svidja tutorial.

Ako ima neka greška javite mi na PM

Ovo mi je prvi tutorial na podforumu Webstranice

 
Poslednja Izmena: Februar 26, 2015, 19:11:33 POSLE PODNE od Maillxx

Mozes na laksi nacin uraditi ovu funkciju convert_date, i to puno laksi umjesto strrpos mozes koristiti explode kako bi rastavio string na array i tamo dobijes unutar arraya dan, mjesec, godinu, isto tako kada bi koristio ne treba ti gomila ovih if/elseif-ova ovako bi izgledala ta funkcija.


function convert_date($num,$type) {
   $explode = explode('.', $num); // Ova funkcija izbacuje tacku iz stringa i dobijas sve rijeci koji su prije tacke posto ovo string izgleda tipa 25.1.2015 dobijas output ovako: array([0] => 25, [1] = 1, [2] => 2015); i sada ako hoces da uzmes dan u type upises 0, i funkcija u 2 linije napisana ..

   return $explode[$type];
}