ugrás a tartalomhoz

Nemzetközi oldal - időzóna

kisstoth · 2006. Júl. 24. (H), 14.50
Sziasztok!

Egy nemzetközi, angol nyelvű oldalnál így van az idő megadva pl.: 2:48 PM (GTM+1:00)

Hogy szokták azt megoldani, hogy mindenki úgy lássa az időt, amilyen területen ő éppen netezik? Vagy ha ez nem nagyon kivitelezhető, akkor melyik formátumban érdemes megadni, GTM?

Köszönöm a válaszokat
 
1

Kliensoldalon, regisztrációkor vagy eltelt időt

vbence · 2006. Júl. 24. (H), 16.57
Ha közösségi oldalt csinálsz, akkor a regisztrációhoz betehetsz egy windows-osra hasonlító időzóna-választást egy <select> formájában, fővárosokkal. Ez elég síma ügy.

A kliensoldalon meg tudod kérdezni a GMT-től való eltérést (percben):
(new Date).getTimezoneOffset()
Ezt aztán vagy felküldöd a szervernek, aki valami session változóban tárolja, és mindig ezzel korrigált dátumot küldesz, vagy kliensoldalon korrigálod (ez sokkal szimpatikusabb).
A kliensnek küldheted UTC formátumban egy megadott classal pl:
<div class="commenttime">1234567890</div>
A getElementsGyTagName("div") segítségével végigméssz a div-eken, megvizsgálod, hogy a "class" attribútum (div.className) "commenttime"-e. Ha igen, akkor a benne található stringet beolvasod, korrigálod, majd visszaírod immár ember számára olvasható formátumban.

Amúgy mostanában divatos eltelt időt írni (pl digg.com ). Egy napon belül percre pontosan, azont úl órára, stb... Ez szimpatikus megoldás, és nem kell hozzá időzónával vacakolni, a "10 perce", az mindenhol 10 perce volt.. :)
2

114 napja

Anonymous · 2006. Júl. 24. (H), 18.11
DATEDIFF(NOW(), '2006-04-01')

mer'hogyugye a 114 napja vissza tudja adni azt h. ippen egy aprilisi trefarol volt szo...
s meg sorolhatnam...de inkabb megsem, mer' te is erzed...;-)

xyz
4

Tréfás

vbence · 2006. Júl. 24. (H), 21.58
Áprilisi tréfáknál is csak a huszadik ember veszi észre a dátumot.. így picit hosszabb ideig tart majd a mulatság :)
3

induljunk ki ember számára olvashatóból

Hojtsy Gábor · 2006. Júl. 24. (H), 21.55
Ha már JavaScript, akkor szerintem jobban teszi, ha ember számára olvashatóból indul ki, és azt írja át. Így akinél nincs JavaScript (például kereső indexelője) az is értelmeset lát, csak éppen nem a saját időzónájában.
<div class="date-time-gmt">2006-07-24 20:54 GMT</div>
5

nem megy

kisstoth · 2006. Júl. 24. (H), 23.42
Nem nagyon megy. Akkor az a legegyszerűbb, ha eleve GMT-ben mentem el az időt, s akkor egyszerűbb ide-oda adogatni hozzá az órákat, nem?

Még nem használtam UNIX időbélyeget, de akkor úgy látszik, hogy most ennél hasznát vehetem. Nem véletlen, hogy a Drupal is így menti el a dolgokat. Jééé :)

Szóval megkapom az eltérést percekben (ez nálam -120), megszorzom 60-val (-7200) és hozzáadom a kapott time értékhez? Ha pedig pozitív szám az eltérés, akkor kivonom? Ilyen egyszerű lenne?
6

olvasható dátumok

vbence · 2006. Júl. 24. (H), 23.57
Ha a szerver GMT-t hazsnál, akkor abba lesznek mentve a dolgok. Az ha minden időt GMTre konvertálsz és úgy tárolod az elég hibaesélyes (egy-egy helyen kimarad), szóval kemény dió.

A Gábor által javallott változat jobb az UTCnél. Az ember számára is olvasható formátumot javascriptel ugyanúgy tudod értelmezni időként, mintha timestamp lenne:
http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/ref_m-q.htm#177758
(tudom.. van frisseb is, de csak ez igazi :)

Adatbázisban legyen csak datetime a tipus.
7

mindenképpen hozzáadod

Hojtsy Gábor · 2006. Júl. 25. (K), 00.02
A kijövő érték az eltérés, ezt hozzá kell adni a GMT-ben mért idődhöz. Nem jó, hogy ha negatívat hozzáadsz, pozitívat meg kivonsz. Akkor a három órával kevesebb és a három órával több helyett is mindig csak három órával kevesebb lesz.
8

Drupalban?

kisstoth · 2006. Júl. 25. (K), 12.49
Drupalban ezt hogy oldották meg?
9

ahogy leírtam

Hojtsy Gábor · 2006. Júl. 27. (Cs), 10.53
Ahogy leírtam.