Időzóna ellenőrzése PHP / Java / MySQL
Szép napot!
Támadt egy kis problémám a címben említett témában.
Adott egy intranetes oldal amit globálisan használnak a felhasználók.
Regisztrációnál meg kell adják, hogy mely időzónában vannak, és ezt a gép menti a useradatokhoz SQLbe, a szerver időzónájához képesti különbséggel együtt.
Egy példa:
A szerver GMT+1, a felhasználó GMT-7, akkor a különbség -8 óra lesz, ez kerül mentésre.
Azonban a különböző időzóna-átállások miatt kellene egy ellenőrző-script. ami összehaonlítja a VÁRT értéket a TÉNYLEGES értékkel, és figyelmezteti a usert, ha nem stimmel valami.
A szerveridő bekérése PHP, módosítva a user időzónájával, a user PC-jéről bekért idő pedig Javascript lenne.
A probléma a következő:
teszem azt a user Denverben tartózkodik, 8 órával mögöttünk.
Most tehát megvan a user ELVÁRT ideje a szerver irányából.
Következő lépésként megvizsgáljuk a usert
var d = new Date();
És itt a gond!!!
Amennyiben
UserYear = d.getFullYear();
irányban bekérem a d-ből a dolgokat, az a user ideje szerint jön le, de egyszerűen lehetetlen ezt timestamp-pé alakítani.
Akármelyik eljárással próbálkozom (pl. parse(); ), az a SZERVER idejének timestampjét adja vissza, HIÁBA adom meg a parse-nak a user idejét stringként!
Így azonban nem megy a dolog.
Persze a két string-et össze tudnám vetni, de szeretnék egy 180 másodperces tűrést hagyni az elvárt idő és a user idő között, ami timestampek használata nélkül macerás...
Mert mi történik ugye, ha az elvárt idő
2008-Apr-11 14:01
User ideje pedig:
2008-Apr-11 13:59 ...
Szóval ebben a témában szeretnék bármilyen hasznos tanácsot, ötletet, felvetést kérni.
Előre is köszönöm!
■ Támadt egy kis problémám a címben említett témában.
Adott egy intranetes oldal amit globálisan használnak a felhasználók.
Regisztrációnál meg kell adják, hogy mely időzónában vannak, és ezt a gép menti a useradatokhoz SQLbe, a szerver időzónájához képesti különbséggel együtt.
Egy példa:
A szerver GMT+1, a felhasználó GMT-7, akkor a különbség -8 óra lesz, ez kerül mentésre.
Azonban a különböző időzóna-átállások miatt kellene egy ellenőrző-script. ami összehaonlítja a VÁRT értéket a TÉNYLEGES értékkel, és figyelmezteti a usert, ha nem stimmel valami.
A szerveridő bekérése PHP, módosítva a user időzónájával, a user PC-jéről bekért idő pedig Javascript lenne.
A probléma a következő:
teszem azt a user Denverben tartózkodik, 8 órával mögöttünk.
<?php
$diff = "-8"; // A user idozonaja es a szerver kozotti kulonbseg oraban, alapvetoen MySQL-bol jon
$modtime = $diff * 3600; // Masodpercce alakitas
$currentime = time(); // Szerver idejenek bekerese timestamp-kent
$usertime = $currenttime + $modtime; // User vart idejenek timestampje
$dispusertime = NormalTimeFuncHUMAN($usertime);
// a NormalTimeFuncHUMAN függvény visszadja a timestamp-et éééé-HHH-nn óó:pp formában.
// Példa: 2008-Apr-12 11:58
?>
$diff = "-8"; // A user idozonaja es a szerver kozotti kulonbseg oraban, alapvetoen MySQL-bol jon
$modtime = $diff * 3600; // Masodpercce alakitas
$currentime = time(); // Szerver idejenek bekerese timestamp-kent
$usertime = $currenttime + $modtime; // User vart idejenek timestampje
$dispusertime = NormalTimeFuncHUMAN($usertime);
// a NormalTimeFuncHUMAN függvény visszadja a timestamp-et éééé-HHH-nn óó:pp formában.
// Példa: 2008-Apr-12 11:58
?>
Most tehát megvan a user ELVÁRT ideje a szerver irányából.
Következő lépésként megvizsgáljuk a usert
var d = new Date();
És itt a gond!!!
Amennyiben
UserYear = d.getFullYear();
irányban bekérem a d-ből a dolgokat, az a user ideje szerint jön le, de egyszerűen lehetetlen ezt timestamp-pé alakítani.
Akármelyik eljárással próbálkozom (pl. parse(); ), az a SZERVER idejének timestampjét adja vissza, HIÁBA adom meg a parse-nak a user idejét stringként!
Így azonban nem megy a dolog.
Persze a két string-et össze tudnám vetni, de szeretnék egy 180 másodperces tűrést hagyni az elvárt idő és a user idő között, ami timestampek használata nélkül macerás...
Mert mi történik ugye, ha az elvárt idő
2008-Apr-11 14:01
User ideje pedig:
2008-Apr-11 13:59 ...
Szóval ebben a témában szeretnék bármilyen hasznos tanácsot, ötletet, felvetést kérni.
Előre is köszönöm!
Leírnád...
Nem tudom, hogy mire jó a 'parse()', de ha én 'JavaScript'-ben egy szöveget, aminek az eleje (vagy az egész) szám ('string'-ként) számmá akarok alakítani, akkor én a 'parseInt()' függvényt használom.
Én 'JavaScript'-tel valahogy így csinálnám (ezzel a függvénnyel):