Page 1 of 3

Дата и час на потребителската машина с PHP?

Posted: Sat Jun 13, 2009 9:00 am
by sizif
Здравейте!

Мога ли да взема датата и часа на потребителската машина? Интересува ме решение с PHP.

Благодаря предварително!

Posted: Sat Jun 13, 2009 9:29 am
by KlaXeN

Code: Select all

<?php
$nextWeek = time&#40;&#41; + &#40;7 * 24 * 60 * 60&#41;;
                   // 7 days; 24 hours; 60 mins; 60secs
echo 'Now&#58;       '. date&#40;'Y-m-d'&#41; ."\n";
echo 'Next Week&#58; '. date&#40;'Y-m-d', $nextWeek&#41; ."\n";
// or using strtotime&#40;&#41;&#58;
echo 'Next Week&#58; '. date&#40;'Y-m-d', strtotime&#40;'+1 week'&#41;&#41; ."\n";
?>

Posted: Sat Jun 13, 2009 9:48 am
by sizif
KlaXeN,

благодаря, че се отзоваваш с отговор, но моля те, прочети внимателно въпроса ми.

Това, което си ми пуснал като код няма отношение към питането ми.

Posted: Sat Jun 13, 2009 10:55 am
by bafitu
едва ли има някакво ултимативно решение на този въпрос..
варианта е или да ползваш javascript и след това да се обръщаш към пхп-то с пратените данни
..илии да ползваш хедър-а който браузъра праща и от там да си изкараш по накакъв начин часа според него:
HTTP_ACCEPT_LANGUAGE
НО си има недостатък...примерно аз си ползвам мозилата на английски и дефактно мен ще ме разпознае с en време.
IE ми приема bg на този хедър и с него ще стане.

Posted: Sat Jun 13, 2009 11:15 am
by sizif
Мислех за варианта с javascript, но това означава, че ще имам 1 празно зареждане, в което трябва да вкарам javascript-а, той да се изпълни и вероятно да върне данните чрез пренасочване (напр. с window.location), в което фигурира ГЕТ-стойността.

Не е много удобно :(

Хедъра на заявката е идея. В него не присъства ли по някакъв начин датата / часа според клиентската машина? Дори да не е като стойност, ако прекарам хедъра през регулярни изрази, не мога ли да я извлека? Всъщност, как мога да взема пълния хедър на заявката?

Posted: Sat Jun 13, 2009 11:22 am
by bafitu
ами за джавата варианта е да ползваш ajax поне да не се забележи рефрешване.
За хедъра...не
примерно в момента от мозилата ми стойноста му е :
en-gb,en;q=0.5
а от IE е : bg
друг хедър не знам да съществува , а и би се показал :)
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];

Posted: Sat Jun 13, 2009 11:26 am
by sizif
Не, не, bafitu, питах дали не мога да взема пълния хедър на заявката, която изпраща браузъра? Т.е. не чрез проверка в глобалните регистри на сървъра, а целия хедър под формата на низ (или още по-добре масив)?

Posted: Sat Jun 13, 2009 11:34 am
by bafitu
чакай ,че не мога да схвана ..каква заявка ? какъв цял хедър ?

print_r($_SERVER); първите дето почват с HTTP_* са нещата които се пращат от браузъра..нищо друго.
Нещо не мога да ти проследя мисълта :roll:

Posted: Sat Jun 13, 2009 11:34 am
by raiden
http://web-tourist.net/forum/viewtopic. ... 753#329753
При теб ще стане нещо такова:

Code: Select all

<script language="javascript">
<!--
wCookie&#40;&#41;;

function wCookie&#40;&#41;
&#123;
 var today = new Date&#40;&#41;;
 var h = today.getHours&#40;&#41;;
 var m = today.getMinutes&#40;&#41;;
 var s = today.getSeconds&#40;&#41;;
 var the_date = new Date&#40;"December 31, 2023"&#41;;
 var the_cookie_date = the_date.toGMTString&#40;&#41;;
 var the_cookie = "time="+ h +"&#58;"+ m + "&#58;" + s;
 var the_cookie = the_cookie + ";expires=" + the_cookie_date;
 document.cookie=the_cookie
&#125;
//-->
</script>
<?php
echo $_COOKIE&#91;"time"&#93;;
?>
Може да разгледаш и това, бях го правил пак за някой от туриста:
http://1509747481/OLD/gmt.rar

И все пак решение без js не съм успял да измисля аз поне...

Posted: Sat Jun 13, 2009 11:54 am
by sizif
raiden,

ако не намеря решение с РНР, ще помисля за javascript и куки, както си предложил и ако го използвам, ще ти дам точката.

Все още обаче търся решение с РНР.

***

Какво връща $_SERVER['REQUEST_TIME' ] -> кога браузъра изпраща заявката в UNIX-формат?