• 8 odgovora
  • 3.924 pregleda
Potrebna proverena klasa za datume 03.09.2007. u 12:21 · pre 233 meseci #1
Potrebna je proverena klasa za rad sa datumima. Potrebno da ima oduzimanje datuma, dodavanje, preostalovreme i sl. Da radi u PHP5.

Vrlo je vazno da ne pravi greske u racunanju vremena, narocoto kod meseci kao februar kada ima 28 dana u mesecu i sl...

Molim vas za predlog.

Hvala.
Potpis
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
Re: Potrebna proverena klasa za datume 03.09.2007. u 17:40 · pre 233 meseci #2
Ne znam šta tu ima posebno sa datumima da bi se pravila klasa od toga.

Ako sa datumima i vremenima radiš na nivou integer-a onda je to boza.
Ako ne, onda ih konvertuj u integer pre operacija.
Ionako podatak o tekućem vremenu dobijaš od funkcije time() a ona vraća integer.

Fora je što je taj integer upravo ono što ti treba - bezbedan što se tiče meseci i prestupnih godina.

Jednostavnim sabiranjem mu dodaješ vreme, a razlika dva integera je preostalo vreme.

Ja čak i u mysql tabelama poljima dajem tip int(11) umesto date. Kad mi zatreba poređenje vremena u queriju (where vreme<$Sada) neću da razmišljam o tome koja je vremenska zona ili format zapisa, umesto toga koristim najobičnije poređenje integera. Znam da onda nije tako pregledno kad gledam tabelu kroz phpmyadmin, ali navikao sam tako.
Potpis
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Re: Potrebna proverena klasa za datume 03.09.2007. u 19:22 · pre 233 meseci #3
Citat:
mVeliki:
Ja čak i u mysql tabelama poljima dajem tip int(11) umesto date. Kad mi zatreba poređenje vremena u queriju (where vreme<$Sada) neću da razmišljam o tome koja je vremenska zona ili format zapisa, umesto toga koristim najobičnije poređenje integera. Znam da onda nije tako pregledno kad gledam tabelu kroz phpmyadmin, ali navikao sam tako.


@mVeliki dovoljno je int(10) jer je time() definisan iznad 2035. god a ispod 2040 a i tad taj broj od deset karaktera pocinje ako se ne varam sa 1 ili 2 tako da jos dugo dugo nece biti potreba za 11 kao duzinu :) izvini zbog ovog gundjanja al cisto da znas (ja sam se bavio raznim glupostima sve u ime optimizacije pa slobodno pitaj ako te jos nesto interesuje) :)

Poz

@zgas radi kako je mVelki rekao time ti je skroz bezbedno
Re: Potrebna proverena klasa za datume 03.09.2007. u 19:58 · pre 233 meseci #4
Mnogo hvala obojici. Mozete li mi reci da ne zalutam:

Na koji nacin pretvaram naprimer datum u integer: '2008-08-30' (posto su mi u bazi datumi u ovom obliku)

I na koji nacin pretvaram na primer interval od 30 minuta u integer,

I stoga sledi pitanje : Kako da bi od tog integer datuma mogao da oduzme tih 30 minuta? Taj rezultat bi opet trebao da vratim u vrednost citljivu za coveka, znaci trebao bi da dobijem nesto kao:
"2008-08-29 23:30:00"

Moizete li mi dati primer kako to radim.
Potpis
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
Re: Potrebna proverena klasa za datume 03.09.2007. u 20:21 · pre 233 meseci #5
Potrebne su ti funkcije:
time() - dobiješ trenutni timestamp
date() - formiraš prikaz vremena/datuma u čoveku čitljivi oblik
mktime() - od čoveku čitljivog datuma/vremena praviš timestamp
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Potrebna proverena klasa za datume 03.09.2007. u 20:30 · pre 233 meseci #6
Citat:
zgas: Na koji nacin pretvaram naprimer datum u integer: '2008-08-30' (posto su mi u bazi datumi u ovom obliku)


Mozes pomocu strtotime() koja kao parametar ocekuje neki od US formata datuma. Ostalo ti je rečeno
Re: Potrebna proverena klasa za datume 03.09.2007. u 23:36 · pre 232 meseci #8
@hatebreeder: opet navika, ja mu obično stavim samo int a server sam doda (11)
Nego kad si se već bavio optimizacijama daj neki komentar u temi 'Benchmark PHP skripta'. Ja sam se optimizacijom bavio samo površno, a koristiće nam više iskustava.

Potpis
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme