Autor | Zpráva | ||
---|---|---|---|
petoo999 Profil |
#1 · Zasláno: 28. 8. 2012, 10:23:31
Zdravim,potrebujem poradit nejakú šikovnu funkciu ktora porovna dva stringy(datum+čas).Jeden čas je čas dokončenia nejakej činnosti a druhý je aktualny čas.Ja potrebujem return ktorý vráti koľko minút zostava k rovnosti časov.
$time = '31.08.2012 09:05:32'; // priklad ja to mam z DB Skušal som nasledujuci kod ale potrebol by nejaky cyklus $date = new DateTime(Date("j.m.Y H:i:s")); $date->add(new DateInterval('PT0H'.$i.'M')); $cas = $date->format('j.m.Y H:i:s'); |
||
Alphard Profil |
#2 · Zasláno: 28. 8. 2012, 10:44:28
|
||
Tori Profil |
|||
petoo999 Profil |
#4 · Zasláno: 28. 8. 2012, 13:08:50
Tori:
TIMEDIFF mi nevrati nic.Navyše použivam Codeigniter a tam mam ine query.Format mam Y.m.d H:i:s |
||
Tori Profil |
#5 · Zasláno: 28. 8. 2012, 17:47:59
petoo999:
Aha, předpokládala jsem, že máte (v DB) datum uložené jako DATETIME, ne řetězec, s tím se samozřejmě TIMEDIFF použít nedá. „Navyše použivam Codeigniter“ Na fóru CodeIgniter se dá např. najít funkce, které vrací lokalizovaný řetězec (Před ... dny). Nevím, jestli se dá výstup omezit jen na některé čas.jednotky, tady se asi postupně probírá zdroják té funkce, takže si můžete kdyžtak upravit. (mezi prvními pěti výsledky googlem na "codeigniter time difference") |
||
petoo999 Profil |
No takže moje finálne riešenie je asi takáto funkcia do codeigniter-a.Vracia mi to počet minút do rovnosti časov.
function get_progress($action,$uid = false){ $ci =& get_instance(); if (!$uid = uid()) return FALSE; $query = $ci->db->select('time'); $query = $ci->db->where('user_id',$uid); $query = $ci->db->where('action',$action); $query = $ci->db->get('casomiera'); if ($query->num_rows() > 0)$time = $query->row()->time; else return false; $c = strtotime($time); $newformat = date('j.m.Y H:i:s',$c); $date1 = new DateTime($newformat); $date2 = new DateTime(mydate()); $interval = $date1->diff($date2); $days = $interval->format('%d'); $hours = $interval->format('%H'); $minutes = $interval->format('%i'); if($days != 0){ $days = $days * 24 * 60; } if($hours != 0){ $hours = $hours * 60; } return $minutes + $hours + $days; } |
||
Časová prodleva: 12 let
|
0