[ kupidisk @ 07.02.2005. 02:10 ] @
Imam problem koji se odnosi na to da na vremene na serveru trebam da dodam 6 sati. Nasao sam u php manualu deo koji se odnosi na to ali ne umem da ga primenim.

Naime imam:

$datum=date("d.m.Y. H:i ");

i ne znam kako da tu dodam svojih 6 sati. Jer treba sve preko sekundi raditi?

moze li mala pomoc?
[ dr ZiDoo @ 07.02.2005. 07:36 ] @
mktime

http://www.php.net/manual/en/function.mktime.php
[ JovanT @ 07.02.2005. 10:53 ] @
Da, radi se pomoću sekundi. Probaj sledeće:

Code:
$datum = date("d.m.Y. H:i", time() + 21600);
[ Jbyn4e @ 07.02.2005. 11:41 ] @
Pa nije bas tako, mozes i preko time zone - znaci nadjes time zone koja je +6 i koristis nju (npr)
Code:

date("Y.m.d. G:i:s T CET")

ce ti dati vreme po Central European Time (nase vreme)...
P.S. T je parametar za timezone.
[ kupidisk @ 07.02.2005. 12:35 ] @
Sa

Code:
$datum=date("d.m.Y. H:i T CET"); 


dobijam ovo:

07.02.2005. 07:31 EST CEEST

sto mi ne odgovara

a sa:

$datum=date("d.m.Y. H:i T CET", time() + 21600);

dobijam nase vreme koje je tacno. E sad bice problem kod menjanja vremena ali... bolje i to nego.

Nego hoce li ovo dodavanje sekundi uticati na to ako je npr 23:20 i ja dodam 6 sati, hoce li se datum promeniti za 1?
[ bluesman @ 07.02.2005. 13:33 ] @
mozes i sa

$datum = date("d.m.Y. H:i", strtotime ("+6 hours"));

ako trazis trenutno vreme, a ako trazis preko nekog timestamp iz baze ili nesto onda ovako:

$datum = date("d.m.Y. H:i", strtotime ("+6 hours", $timestamp));
[ bluesman @ 07.02.2005. 13:38 ] @
Da, ako imas neku vecu aplikaciju gde ces ovo cesto raditi onda je bolje da imas neku funkciju koja ti vraca vreme koje hoces, recimo

function my_time ($timestamp = 0, $format = "d.m.Y. H:i", $add = "+6 hours")
{
if (empty($timestamp))
$timestamp = time();

return date($format, strtotime($add, $timestamp));
}

pa onda radis:
echo my_time(); // ispisuj trenutno vreme + 6 sati
echo my_time($ts); // ispisuje formatirano vreme sa timestamp $ts + 6 sati
echo my_time(0, "H:i:s"); // ispisuje trenutno vreme u drugacijem formatu, bez datuma... + 6 sati

itd...
[ Jbyn4e @ 07.02.2005. 14:08 ] @
Citat:
kupidisk: Sa

Code:
$datum=date("d.m.Y. H:i T CET"); 

dobijam ovo:
07.02.2005. 07:31 EST CEEST

Hm, ja dobijam nesto ovako:
2005.02.05. 10:29:00 (ovos ad gledam iz baze, posto mi se vreme upisuje u bazu)....
mozda je forma sto jos stavljam i promenljivu za linux host za enviroinment (ili kako se to vec bese zove), deo koda je u stvari:
Code:

putenv("TZ=GMT-1");
$query = " INSERT INTO tabela VALUES (".date("Y.m.d. G:i:s T CET").")";



[ kupidisk @ 07.02.2005. 14:58 ] @
Citat:
bluesman: Da, ako imas neku vecu aplikaciju gde ces ovo cesto raditi onda je bolje da imas neku funkciju koja ti vraca vreme koje hoces, recimo

function my_time ($timestamp = 0, $format = "d.m.Y. H:i", $add = "+6 hours")
{
if (empty($timestamp))
$timestamp = time();

return date($format, strtotime($add, $timestamp));
}

pa onda radis:
echo my_time(); // ispisuj trenutno vreme + 6 sati
echo my_time($ts); // ispisuje formatirano vreme sa timestamp $ts + 6 sati
echo my_time(0, "H:i:s"); // ispisuje trenutno vreme u drugacijem formatu, bez datuma... + 6 sati

itd...


Da imam potrebu za ovim na vise mesta Posto sam totalni pocetnik u svemu ovome moram da pitam sledece:

da bi pozivao jednu funkciju u vise razlicitih fajlova treban da je stavim u fajl npr funkcije, a onda za svaki sledeci fajl gde zelim da je pozovem, ja uradim include tog fajla gde su mi funkcije, i na taj nacin definisem samo jednom?

Ja za sada i nisam siguran sta je zapravo timestamp. U tabeli imam definisana dva datuma. Jedan je klasican datum tipa:

12.12.2004.

a drugi je u obliku:

1102900106 <- da li je ovo timestamp.

Ako zelid da iscitam recimo zadnjih 10 ubacenih jer cu to raditi preko timestampa ili preko nekog drugog polja?
[ bluesman @ 09.02.2005. 03:20 ] @
Preporucujem ti da procitas manual, tamo je sve objasnjeno u vezi timestamp. Ukratko, to je broj sekundi protekliih od 1. 1. 1970. i izrazava se kao unsigned integer.

U pravu si za include, preporucujem da koristis include_once narocito ako radis vecu aplikacuju. Procitaj manual i za require i require_once.

U MySQL imas nekoliko nacina zapisivanja datuma i oni imaju svoje podvarijante u zavisnosti od formata koji ti treba, kao i dosta mysql funkcija kojima iz querija mozes da izvlacis razne oblike zapisa datuma.

Ako trazis zadnjih 10 uspisa trebalo bi da radis ili preko timestamp, ili da imas polje datetime ili da koristis auto_increment id. Recimo, ako imas polje DATE koje zaposuje YYYY-MM-DD i za 2005-02-08 si imao 10 zapisa, kako ces znati koji je redosled ako ne koristis i vreme ili auto_increment id?