Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Preporuke za date funkciju koji stil, kako koristiti, vase funkcije

[es] :: PHP :: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije

[ Pregleda: 2575 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Miladinović
Ivan Miladinovic
All around the web

Član broj: 26492
Poruke: 592
*.3dnet.co.yu.

ICQ: 321748581
Sajt: www.sanovniktumacenjesnov..


+1 Profil

icon Preporuke za date funkciju koji stil, kako koristiti, vase funkcije30.11.2006. u 17:43 - pre 211 meseci
Pozdrav,

pravim plan za rad na jednoj PHP aplikaciji u sustini mi je najvaznija u glavnom delu DATE funkcija tj. "rad sa datumima".

Ukratko dacu primere za sta bi mi trebala funkcija i koji format datuma preporucujete:

Primer 1:
zadat je datum 11.05.2006.
ja hocu da jednostavno iz padajuceg menija izaberem recimo 3 meseca trajanje ili 2 nedelje trajanje ili 10 dana trajanje...

Moze i gotova funkcija a moze i pomoc kako sracunati? Kako da ja izracunam kada ce biti tih dana... Ili kako da sracunam ako ja unesem recimo 3 meseca i 5 dana? Kako ce PHP znati da ja hocu da on upise u bazu recimo 16.08.2006.?

Sad ce neko kaze pa pisi funkciju :) Pa hocu da pisem funkciju - samo mi malo pomozite da se pokrenem.

Primer 2:
zadat je datum negde u bazi recimo 12.06.2006.
danas je 30.11.2006.

Kako da napisem funkciju koja ce da kaze ako vidi takav red u bazi recimo (dokument je nevazeci, stariji je od 6 meseci).

Bitno mi je RACUNANJE.

Zakljucak
Hocu da naucim kako se radi sa datumima...
Kako to radite?
Koji format za datum preporucujete? (meni bi recimo odgovarao 20.12.2006. tako neki format... Jel' se preporucuje?)
Ima li PHP unapred ugradjene funkcije koje automatski razgradjuju takve stvari (ja nisam uspeo da nadjem).

Naravno citao sam http://www.php.net/date ali mi treba neki hint od nekoga ko je radio i ko koristi datume cesto.

Znaci ponavljam moze i gotovo resenje a mogu i samo hintovi kako doci do funkcije, znaci mozak mi je stopiran. Poludecu ako ovo ne resim. Kao da imam blokadu. :(

Ova funkcija mi je zapala za oko:
Code:
<?php
   function ezDate($d) {
       $ts = time() - strtotime(str_replace("-","/",$d));
      
       if($ts>31536000) $val = round($ts/31536000,0).' year';
       else if($ts>2419200) $val = round($ts/2419200,0).' month';
       else if($ts>604800) $val = round($ts/604800,0).' week';
       else if($ts>86400) $val = round($ts/86400,0).' day';
       else if($ts>3600) $val = round($ts/3600,0).' hour';
       else if($ts>60) $val = round($ts/60,0).' minute';
       else $val = $ts.' second';
      
       if($val>1) $val .= 's';
       return $val;
   }
?>

Then I use it as follows;

<?php
   echo ucwords(ezDate('2006-09-07 18:42:00')).' Ago';
?>



Da li bi ste je koristili?


Puno pozdrava svima i unapred hvala na savetima.
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
212.200.145.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije30.11.2006. u 18:13 - pre 211 meseci
Sa time() dobijaš timestamp trenutnog vremena. Sa date() formatiraš timestamp da bude čitljiv ljudima a sa mktime() datum čitljiv ljudima prebacuješ u timestamp. Kad imaš timestamp onda je računanje lako (to je broj sekundi od 01.01.1970... ja mislim... uostalom nije ni bitno od kad je )
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Mr. Jack

Član broj: 39108
Poruke: 106
*.com
Via: [es] mailing liste



Profil

icon Re: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije30.11.2006. u 18:33 - pre 211 meseci
> Kako da napisem funkciju koja ce da kaze ako vidi takav red u bazi
> recimo (dokument je nevazeci, stariji je od 6 meseci).

MySQL ima lepu funkciju koja se zove DATEDIFF.
Planets devastated
Mankind's on its knees
A saviour comes from out the skies
In answer to their pleas...

M.R. J.A.C.K
 
Odgovor na temu

Ivan Miladinović
Ivan Miladinovic
All around the web

Član broj: 26492
Poruke: 592
*.3dnet.co.yu.

ICQ: 321748581
Sajt: www.sanovniktumacenjesnov..


+1 Profil

icon Re: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije30.11.2006. u 20:48 - pre 211 meseci
Nasao sam jos nesto zanimljivo mislim da je ovo osnova koju sam trazio kao i ovo sto je Nemanja spomenuo i objasnio u jednoj recenici. Bas to mi je trebalo.
Ovo ispod je u sustini osnova koja mi je trebala i na sta sam mislio, dalja racunanja cu sam da radim kao i da pisem potrebne funkcije. :)

Code:

$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 days; 24 hours; 60 mins; 60secs
echo 'Now:      '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";


Naravno pre nego pocnem da pisem aplikaciju pogledacu i DATEDIFF pa cu videti sta mi vise odgovara.

Hvala.
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.sbb.co.yu.



+19 Profil

icon Re: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije01.12.2006. u 19:49 - pre 211 meseci
Treba obratiti pažnju na to da je timestamp broj sekundi od 1970 ali po griniču (GMT) tako da kad (ovde u Srbiji) radiš svoju kalklaciju vremena možeš dobiti čudne rezultate, recimo kad probaš da odsečeš vreme iz datuma sa floor(time()/86400)*86400 , i kad to prikažeš sa funkcijom date dobiješ da je 01:00 a ne ponoć, isto tako sa mktime(0, 0, 0, 1, 1, 1970) umesto nule dobiješ grešku zbog negativanog broja (minus jedan sat).

Funkcija date uzima u obzir vremensku zonu i dodaje na timestamp da i prikazao tačno vreme, a mktime pomera vreme u drugu stranu.

Ne znam gde tu uskače pomeraj za letnje/zimsko (daylight) računanje vremena.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.sbb.co.yu.



+19 Profil

icon Re: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije01.12.2006. u 22:10 - pre 211 meseci
Takođe, nema svaki dan u godini tačno 24 časa (86400 sekundi).
Dvaput godišnje će se desiti da takva ("Next week") računica neće biti ispravna.
U nekim situacijama to i nije toliko bitno ali ponekad i jeste.

Rešenje bi ovde bilo:
Code:

  $T= explode('.', gmdate('H.i.d.m.Y'));
  $NextWeek= gmmktime($T[0], $T[i], 0, $T[3], $T[2]+7, $T[4]);

"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

Ivan Miladinović
Ivan Miladinovic
All around the web

Član broj: 26492
Poruke: 592
195.252.72.*

ICQ: 321748581
Sajt: www.sanovniktumacenjesnov..


+1 Profil

icon Re: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije08.12.2006. u 18:09 - pre 211 meseci
Hvala mVeliki.

U mom slucaju (trenutno) nije vazna toliko racunica da li je par sati +/-. Vazan mi je dan.
Sto se tice daylight necu oko toga da se opterecujem jer mi trenutno nije ni najmanje bitno.

Naravno koristicu precizniju racunicu koju si predlozio, zbog sebe, da bi mi preslo u naviku kad pisem programe, ali ovom prilikom niti umem niti je neophodno da se zadrzavam oko daylight prelaza.

Hvala jos jednom na informaciji i pomoci, iskreno nisam ni znao da nema svaki dan tacno 86400 sekundi (svaki da covek nauci po nesto novo).

Pozdrav
Ivan
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.sbb.co.yu.



+19 Profil

icon Re: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije09.12.2006. u 21:50 - pre 211 meseci
Ako slučajno niste znali, postoje i prestupne sekunde !

http://en.wikipedia.org/wiki/Leap_second

Više se ni u vreme ne možeš pouzdati :-)
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

[es] :: PHP :: Preporuke za date funkciju koji stil, kako koristiti, vase funkcije

[ Pregleda: 2575 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.