DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > DevProTalk > Sva početnička pitanja
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum.

Odgovori
 
Alati teme Način prikaza
Staro 15. 12. 2007.   #1
staseprimate
NoProfessional
Certified
 
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
staseprimate is on a distinguished road
Default datum i mysql (datetime, date, timestamp)

nisam nasao ovakvu temu....
sta koristiti za unos datuma u mysql ?
date, datetime i timestamp ?
do sada sam koristio samo timestamp a def vrednost je bila CURRENT_TIMESTAMP.
sada sam probao da stavim datetime i def vrednost now() ali dobijam u bazi sve nule...
posto pravim nesto novo mislio sam da ne koristim vise timestamp vec datetime.
da li da koristim datetime ili date ?
i kako def vrednost da mi upisuje sam ?

i jos jedan problem, zelim vreme po srednjeevropskom a ne po tamo americkom gde je server...
ima li neki auto konvertor (tipa now() + 6h ili da se pravi neka srkipta ?
staseprimate je offline   Odgovorite uz citat
Staro 15. 12. 2007.   #2
BluesRocker
profesionalac
Professional
 
Avatar BluesRocker
 
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
BluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished road
Default

Ne možeš da postaviš default now vrednost za date i datetime, ali te ništa ne sprečava da pri unosu ili apdejtu nekog rekorda staviš u upitu da mu vrednost bude NOW().
Kôd:
INSERT INTO <tabela> SET ime = 'Pera', datum_registracije = NOW();
Kôd:
UPDATE <tabela> SET ime = 'Pera', datum_izmene = NOW() WHERE id = <neki id>;
Ono za vremensku razliku, mislim da je bila već tema i kako su ljudi rešili. Jedno od rešenja koje sam video je da u nekom PHP fajlu definišeš konstantu koja ima vrednost:
Kôd:
"DATE_ADD(NOW(), INTERVAL 6 HOUR)"
i umesto NOW() da koristiš svuda tu konstantu. Ako premeštaš sajt na drugi server, samo promeniš vrednost vremenske razlike tamo gde si definisao tu konstantu.
Edit: Ako te ti treba i datum i vreme, onda koristi datetime, a ako je neki podatak tipa datum rođenja (gde vreme ne igra ulogu osim za podznak u horoskopu), dovoljan ti je date.

Poslednja izmena od BluesRocker : 15. 12. 2007. u 16:40.
BluesRocker je offline   Odgovorite uz citat
Staro 15. 12. 2007.   #3
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.248 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Kada timestamp definises kao DEFAULT CURRENT_TIMESTAMP [ON UPDATE CURRENT_TIMESTAMP] onda ga on ionako zapisuje u DATETIME formatu.

Generalno male su razlike, i svi ti DATE... formati se zapisuju krajnje optimizovano (ne piše se string "2007-12-15 18:09.473" već integer) tako da je skoro nevažno šta koristiš, sve dok nije VARCHAR (i to je nekima padalo na pamet, viđao sam )
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 15. 12. 2007.   #4
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.343 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

jedine razlika izmedju timestamp i datetime su sto se prvi timestamp u tabeli automatski updatejtuje kod svake promene podataka, i sto datetime ima nesto veci opseg legalnih datuma (sto je uglavnom nebitno).Date i datetime su ista stvar samo se kod date zanemari deo koji belezi sate i minute

za dobijane lokalnog vremena najednostavnje je da negde definises konstantu koja predstavlja razliku u vremenskim zonama i da onda rucno dodas tu konstantu gde treba.
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
Staro 16. 12. 2007.   #5
staseprimate
NoProfessional
Certified
 
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
staseprimate is on a distinguished road
Default

ok tnx puno.
ako sam dobro skapirao pri upitu insert into i za datum bi koristio now() i dobijao bih vrednost koja se razlikuje od ove trenutne (sve nule) ?
e sad ova konstanta mi nije bas najjasnija... (nisam to nikad radio).
moze li neko da mi da parcence samo tog koda.
dakle
insert into tebela (nesto, datum) values ('nesto', 'sta ovde da stavim???');
ako stavljam $datum onda kako sam definisao negde gore taj datum ?
$datum = now() + nesto mislim da nece da ide jer je to php...
mogu li nesto ovako

$sestsati = time() + (6 * 60 *60);
$datum = date('d.m.y', $sestsati);
staseprimate je offline   Odgovorite uz citat
Staro 16. 12. 2007.   #6
filjo
novi član
Na probnom radu
 
Datum učlanjenja: 31.07.2007
Poruke: 23
Hvala: 0
7 "Hvala" u 5 poruka
filjo is on a distinguished road
Default

Citat:
Originalno napisao staseprimate Pogledajte poruku
insert into tebela (nesto, datum) values ('nesto', 'sta ovde da stavim???');
ako stavljam $datum onda kako sam definisao negde gore taj datum ?

ako koristis DATETIME stavis:
insert into tebela (nesto, datum) values ('nesto', now() );

ako koristis TIMESTAMP stavis
insert into tebela (nesto, datum) values ('nesto', CURRENT_TIMESTAMP );

kod ovog drugog mozes da stavis CURRENT_TIMESTAMP kao default value pa onda mozes malo da skratis:
insert into tebela (nesto) values ('nesto');

takodje u ovom drugom slucaju mozes i da postavis Attribute na ON UPDATE CURRENT_TIMESTAMP pa ce se datum menjati automatski kada apdejtujes bilo sta u slogu.

Sto se tice ovoga sto si ti predlozio - nemoj da mesas datum iz php koda sa datumom iz mysql baze. Cesto se dogadja da je mysql na jednoj a php na drugoj masini. U tom slucaju ako casovnik nije sinhronizovan (a najcesce nije) mozes vrlo neprijatno da se iznenadis kada kod pocne da brljavi.
filjo je offline   Odgovorite uz citat
Staro 16. 12. 2007.   #7
BluesRocker
profesionalac
Professional
 
Avatar BluesRocker
 
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
BluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished roadBluesRocker is on a distinguished road
Default

PHP kôd:
define("TIMEZONE","DATE_ADD(NOW(), INTERVAL 6 HOUR)");

$sql "insert into tabela (nesto, datum) values ('nesto', ".TIMEZONE.")"
Ovo pod uslovom da ti je vremenska razlika 6 sati.
BluesRocker je offline   Odgovorite uz citat
Staro 16. 12. 2007.   #8
staseprimate
NoProfessional
Certified
 
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
staseprimate is on a distinguished road
Default

@filjo
ma to sam znao, ali u svakom slucaju tnx
@BluesRocker
to je to sto mi je trebalo
tnx i tnx svima
staseprimate je offline   Odgovorite uz citat
Staro 16. 12. 2007.   #9
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.248 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Pa nije bas dobra ideja da cuvas tako u bazi, bolje da cuvas onda po GMT pa konvertujes u timezone pri ispisu. Sta ces kada recimo prebacis sajt na drugi server koji je u drugoj zoni?

A ko hoces vec tako, bolje koristi onda:
PHP kôd:
date_default_timezone_set ('Europe/Belgrade'); 
pa onda pises sa time()

Ali najbolje je da pises sve u recimo GMT, a da u tvom script radis output tako sto dodajes vremensku zone, ali onda moras da znas i u kojoj zoni je tvoj korisnik. Ako je server u americi, recimo GMT-6, i ti dodajes 6 sati na to vreme, onome ko je u grckoj to vreme ce biti drugacije nego u Beogradu.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 16. 12. 2007.   #10
staseprimate
NoProfessional
Certified
 
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
staseprimate is on a distinguished road
Default

ma nije mi toliko bitno konkretno vreme... datum je manje vise meni potreban a ne toliko korisniku.... (nisam siguran da li ce korisnik imati mogucnost da vidi datum...)
a ako predjem na drugi server samo promenim sa 6 sati na koliko vec treba... trebam da promenim samo jedan red koda i to da zamenim cifru...

mislim mozda bih nesto i menjao ako ima lakse/bolje, ali dosta sam slab u php-u sa tim datumima zonama i ostalim cudesima...
sta bi trebao da unesem pa da mi uvek ubacuje GTM vreme ?
onda bi pri ispisu trebao uvek da dodajem 1 sat na to vreme za tacno vreme po srednjeevropskom vremenu (koje meni treba) bez obzira gde se host nalazi ?
jesam li upravu za ovo ?
staseprimate je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Array: from date to date Ivan PHP 3 07. 08. 2007. 04:20
Page title i datum Marko88 PHP 28 07. 03. 2007. 13:42
date klasa v0.0.4 oliver78 PHP 14 01. 02. 2006. 02:26
Promena prikaza TIMESTAMP polja u MySQL bluesman SQL baze podataka - Sponzor: Baze-Podataka.net 9 31. 01. 2006. 19:13
date() to time() mega023 PHP 3 01. 12. 2005. 22:24


Vreme je GMT +2. Trenutno vreme je 11:19.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.