funkcia/trieda na zistenie casu v zadanom state
funkcia/trieda na zistenie casu v zadanom state
zdravím,
momentálne hľadám na nete (celkom dlllllho) triedu/funkciu v php, ktorá by mi vracala podľa skratky štátu jeho lokálny čas.. alebo len časový rozdiel medzi aktuálne nastaveným časom na serveri ..
s tým, že by tam bol každý štát, trebars pre usa - ny, rusko - (tie jeho oblasti či čo to zač tam majú, skoro každá je v inej časovej zóne), atď..
ale nič nemôžem nájsť..
nemáte niečo také? alebo kde by som to našiel..
ono, aby som ju išiel teraz robiť, by ma asi hodilo o zem, keď človek zoberie ten X počet štátov, ku každému nastaviť hodnotu gmt, niektoré ešte majú posun času, na to som moc lenivý..
taká otázka ešte, tu v registrácií je výber GMT, ale akosi tomu nerozumiem.. vyberiem trebars +1, čiže všetky štáty ktoré majú gmt+1 majú aj posun času? lebo keby nie, tak by to bolo chybné ak sa nemýlim.. som to tak chcel spraviť, ale sa mi to nezdá..
thx
(tomasmate: ja píšem tu)
momentálne hľadám na nete (celkom dlllllho) triedu/funkciu v php, ktorá by mi vracala podľa skratky štátu jeho lokálny čas.. alebo len časový rozdiel medzi aktuálne nastaveným časom na serveri ..
s tým, že by tam bol každý štát, trebars pre usa - ny, rusko - (tie jeho oblasti či čo to zač tam majú, skoro každá je v inej časovej zóne), atď..
ale nič nemôžem nájsť..
nemáte niečo také? alebo kde by som to našiel..
ono, aby som ju išiel teraz robiť, by ma asi hodilo o zem, keď človek zoberie ten X počet štátov, ku každému nastaviť hodnotu gmt, niektoré ešte majú posun času, na to som moc lenivý..
taká otázka ešte, tu v registrácií je výber GMT, ale akosi tomu nerozumiem.. vyberiem trebars +1, čiže všetky štáty ktoré majú gmt+1 majú aj posun času? lebo keby nie, tak by to bolo chybné ak sa nemýlim.. som to tak chcel spraviť, ale sa mi to nezdá..
thx
(tomasmate: ja píšem tu)
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
poviem pravdu s nicim podobnym som sa nestretol. uvazoval som vsak nad riesenim tohto problemu, a narazil som na problem. Kazdu krajinu chces reprezentovat skratkou. To je v poriadkuv pripade, ze sa cela krajina nachadza v jednom casovom pasme. No co napriklad v pripade Ruska? co ti ma dany kod vracat?
jo, asi to vzdávam.. rusko, argentína a podobné.. určité ich mestá majú iné časy a to sa ani nedá označiť ako oblasť.. (alebo dá?, neviem radšej to už neriešim)..
cez deň som sa hral s putenv, kde som nastavoval časovú zónu pre server, ale nemohol nájsť funkciu ktorá by to nastavovala len pre script.. to sa mi až teraz podarilo (vďaka nejakej stránke)... ovplyvňuje funkciu date() a podobné..
http://sk.php.net/manual/en/function.da ... ne-set.php
a k nej
http://sk.php.net/manual/en/timezones.php
asi celý ten zoznam hodím do selectu, k vybranej položke zobrazím aký je aktuálny čas tam a nech si vyberie človek čo chce..
štve ma, že to uživateľa bude otravovať, ten výber a na druhú stranu to môže byť nepresné, trebars argentína, pre príklad: 2 mestá, a človek býva v meste medzi nimi (ktoré nie je v zozname).. ktoré z nich má vybrať? jedine asi ten informatívny čas to zachráni.. ale celé to výjde na vonok ako otravná gebuzina..
ešte by možno bolo dobré, že sa defaultne označí lokácia, podľa lokácie IPčky, a cez javascript sa doladí podľa času počítača časová zóna.. samo. len pre tie štáty s rôznymi pásmami..
cez deň som sa hral s putenv, kde som nastavoval časovú zónu pre server, ale nemohol nájsť funkciu ktorá by to nastavovala len pre script.. to sa mi až teraz podarilo (vďaka nejakej stránke)... ovplyvňuje funkciu date() a podobné..
http://sk.php.net/manual/en/function.da ... ne-set.php
a k nej
http://sk.php.net/manual/en/timezones.php
asi celý ten zoznam hodím do selectu, k vybranej položke zobrazím aký je aktuálny čas tam a nech si vyberie človek čo chce..
štve ma, že to uživateľa bude otravovať, ten výber a na druhú stranu to môže byť nepresné, trebars argentína, pre príklad: 2 mestá, a človek býva v meste medzi nimi (ktoré nie je v zozname).. ktoré z nich má vybrať? jedine asi ten informatívny čas to zachráni.. ale celé to výjde na vonok ako otravná gebuzina..
ešte by možno bolo dobré, že sa defaultne označí lokácia, podľa lokácie IPčky, a cez javascript sa doladí podľa času počítača časová zóna.. samo. len pre tie štáty s rôznymi pásmami..
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
alebo uvadzaj internetovy cas
http://www.timeanddate.com/time/internettime.html
http://en.wikipedia.org/wiki/Swatch_Internet_Time

http://www.timeanddate.com/time/internettime.html
http://en.wikipedia.org/wiki/Swatch_Internet_Time
rozdiel medzi GMT a lokalnym casom uzivatela si vies zistit prostrednictvom JavaScriptu a po zisteni moze na pozadi rebehnut request (AJAX), kde si posles tuto informaciu na server.
ak ti vsak ide iba o vypisanie serveroveho casu upraveneho na lokalitu uzivatela, kludne sa o to moze postarat samotny JavaScript s pomocou PHP:
mozno som nepochopil, co presne chces, tak daj vediet.
Kód: Vybrať všetko
var localTime = new Date();
var localZone = localTime.getTimezoneOffset();ak ti vsak ide iba o vypisanie serveroveho casu upraveneho na lokalitu uzivatela, kludne sa o to moze postarat samotny JavaScript s pomocou PHP:
Kód: Vybrať všetko
// php file
<?php
preg_match("/^([+|\-]{1})([0-9]{2})([0-9]{2})$/",date("O"), $matches);
$minut = $matches[1].(((int)$matches[2]*60)+(int)$matches[3]); //*(int)($matches[1].1);
$GMT = date( "m d Y H:i:s", mktime( date("H"), date("i")-$minut) );
?>
<html>
<head>
<title>Hodiny podla servera v kazdej casovej zony</title>
<script type="text/javascript">
var serverTimeString = "<?=$GMT ?>"; // mesiac den rok ....
var serverTime = Date.parse(serverTimeString);
serverTime = new Date(serverTime);
var localTime = new Date();
var localZone = localTime.getTimezoneOffset();
serverTime.setMinutes(serverTime.getMinutes() - localZone );
function showGoodTime()
{
serverTime.setSeconds(serverTime.getSeconds() + 1);
var hours = serverTime.getHours().toString();
if( hours.length == 1 )
hours = "0" + hours;
var minutes = serverTime.getMinutes().toString();
if( minutes.length == 1 )
minutes = "0" + minutes;
var seconds = serverTime.getSeconds().toString();
if( seconds.length == 1 )
seconds = "0" + seconds;
document.getElementById('clock').innerHTML = hours + ":" + minutes + ":" + seconds;
}
</script>
</head>
<body>
<span id="clock"></span>
<script type="text/javascript">
showGoodTime();
var ourInterval = setInterval("showGoodTime()", 1000);
</script>
</body>
</html>nie, cez js to nechcem robiť, človek si zmení čas na pc, čo potom..
použiť to chcem na.. príklad: rezervuješ si hotel tam a tam, na presný dátum a čas, ten čas sa ale uvádza v tvojej časovej zóne (čiže do toho spadajú aj prechody času), ten sa vezme, vypočíta sa v tvojej časovej zóne rozdiel sekúnd od aktuálneho času po rezervovaný čas (taktiež vrátane prechodov) a ten sa potom pripočíta k unixovému razítku na serveri a uloží do DB..
druhý príklad: 2 ľudia z rôznych lokalít spolu komunikujú, obom sa zobrazuje aj čas s kým píše, tam by ten js celkom pasol, ale môže to byť nepresné, príde mi to sry - amatérske..
k tomu php - ako som to chcel použiť.. ku každému štátu som pridelil hlavné mestá z toho zoznamu (dosť z nich tam chýba), a také usa, tipujem tak 3-4 štáty sú tam.. pravdepodobne preto, lebo chystajú meniť posun času..
mastermind, tak to veru nemôžem použiť.. som zistil, že ten posun času nie je rovnaký, skoro všade to majú inak..
riešenie? vlastniť zemeguľu a globálne zrušiť posun času
ja už netuším, som z toho zúfalý..
použiť to chcem na.. príklad: rezervuješ si hotel tam a tam, na presný dátum a čas, ten čas sa ale uvádza v tvojej časovej zóne (čiže do toho spadajú aj prechody času), ten sa vezme, vypočíta sa v tvojej časovej zóne rozdiel sekúnd od aktuálneho času po rezervovaný čas (taktiež vrátane prechodov) a ten sa potom pripočíta k unixovému razítku na serveri a uloží do DB..
druhý príklad: 2 ľudia z rôznych lokalít spolu komunikujú, obom sa zobrazuje aj čas s kým píše, tam by ten js celkom pasol, ale môže to byť nepresné, príde mi to sry - amatérske..
k tomu php - ako som to chcel použiť.. ku každému štátu som pridelil hlavné mestá z toho zoznamu (dosť z nich tam chýba), a také usa, tipujem tak 3-4 štáty sú tam.. pravdepodobne preto, lebo chystajú meniť posun času..
mastermind, tak to veru nemôžem použiť.. som zistil, že ten posun času nie je rovnaký, skoro všade to majú inak..
riešenie? vlastniť zemeguľu a globálne zrušiť posun času
ja už netuším, som z toho zúfalý..
http://www.anicon.ca/timezone-script.php
ešte tam aj píše, že to (snaď) upravý akonáhle usa pomení tie prechody.. a vyzerá to tak, že to funguje skvele, až na tú hodinu v noci čo spomína.. ešte to poprispôsobujem pre seba a..
idem mu poďakovať X krát