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

sizif

Registered
Здравейте!

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

Благодаря предварително!
 
Код:
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
                   // 7 days; 24 hours; 60 mins; 60secs
echo 'Now:       '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
// or using strtotime():
echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>
 
KlaXeN,

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

Това, което си ми пуснал като код няма отношение към питането ми.
 
едва ли има някакво ултимативно решение на този въпрос..
варианта е или да ползваш javascript и след това да се обръщаш към пхп-то с пратените данни
..илии да ползваш хедър-а който браузъра праща и от там да си изкараш по накакъв начин часа според него:
HTTP_ACCEPT_LANGUAGE
НО си има недостатък...примерно аз си ползвам мозилата на английски и дефактно мен ще ме разпознае с en време.
IE ми приема bg на този хедър и с него ще стане.
 
Мислех за варианта с javascript, но това означава, че ще имам 1 празно зареждане, в което трябва да вкарам javascript-а, той да се изпълни и вероятно да върне данните чрез пренасочване (напр. с window.location), в което фигурира ГЕТ-стойността.

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

Хедъра на заявката е идея. В него не присъства ли по някакъв начин датата / часа според клиентската машина? Дори да не е като стойност, ако прекарам хедъра през регулярни изрази, не мога ли да я извлека? Всъщност, как мога да взема пълния хедър на заявката?
 
ами за джавата варианта е да ползваш ajax поне да не се забележи рефрешване.
За хедъра...не
примерно в момента от мозилата ми стойноста му е :
en-gb,en;q=0.5
а от IE е : bg
друг хедър не знам да съществува , а и би се показал :)
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
 
Не, не, bafitu, питах дали не мога да взема пълния хедър на заявката, която изпраща браузъра? Т.е. не чрез проверка в глобалните регистри на сървъра, а целия хедър под формата на низ (или още по-добре масив)?
 
чакай ,че не мога да схвана ..каква заявка ? какъв цял хедър ?

print_r($_SERVER); първите дето почват с HTTP_* са нещата които се пращат от браузъра..нищо друго.
Нещо не мога да ти проследя мисълта :roll:
 
http://web-tourist.net/forum/viewtopic.php?p=329753#329753
При теб ще стане нещо такова:

Код:
<script language="javascript">

</script>
<?php
echo $_COOKIE["time"];
?>

Може да разгледаш и това, бях го правил пак за някой от туриста:
http://1509747481/OLD/gmt.rar

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

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

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

***

Какво връща $_SERVER['REQUEST_TIME' ] -> кога браузъра изпраща заявката в UNIX-формат?
 
Цитат:
The timestamp of the start of the request
т.е. да .

Тъкмо се канех да го пробвам на хоста, че локалния ми сървър е стара версия, но щом върща в UNIX, не върши работа.


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

Идеята ми е дали не мога с РНР да взема оригиналната зявка, която браузъра изпраща на сървъра и да видя дали там не присъства информация за датата.
 
Ако успееш да получиш времето в UNIX формат какво ти пречи да го върнеш като нормална дата/час?
 
Ако успееш да получиш времето в UNIX формат какво ти пречи да го върнеш като нормална дата/час?

Интересува ме в какъв часови пояс се намира потребителя, за да зная как да принтирам датите в съдържанието на сайта, така че да отговарят на неговото часово време.

Резултатът в UNIX формат е еднакъв, независимо дали машината е базирана в БГ или на о-вите Фиджи :(

ПП: мануала на рнр не ми зарежда?!
 
Еми щом искаш часовия пояс погледни линка който дадох в някой от предишните ми постове: http://1509747481/OLD/gmt.rar Прави точно това което искаш, след като веднъж вземеш часовия пояс можеш да го запаметиш в куки и да не ползваш проверката повече
 
raiden,

кукито е лесно. Проблемът е първото зареждане. Свалих скриптовете, но пак става дума за Js.
 
Направено е с аякс, така че при първото зареждане изпраща информацията до външен файл, който може да върне резултат, който резултат пък можеш да изведеш в първата заредена страница без рефреши.
Я обясни какво точно целиш да направиш и ще можем да сме ти по-полезни
 
Всички дати в БД ще са в UNIX-формат. Искам да ги принтирам според часовия пояс на потребителя. Изпълнението е елементарно с date(); но как да разбера какво е часовото му време?

Единият вариант е според географския признак на ИП-то, но това значи да се вържа към външен сървър (БД за ИП-та) и да разчитам, че няма да забива много. За мен е неудовлетворително решение, защото от опит знам, че подобни сървъри често забиват. Да сваля готова БД означава да я актуализирам непрекъснато. Още по-сложно.

Другият варинат е да се взема датата и часа от потребителската машина. Това е идеалният вариант, ако може да стане само с PHP. Не ми се ползва AJAX и изобщо Js защото това би означавало да обвържа принтирането на резултата с несигурната презумпция, че браузърът на потребтеля изпълнява Js. Хайде, това се проверява лесно - get_browser(); а ботовете лесно се идентифицират. Но дотук съм направил няколко проверки преди още да съм стигнал до същината.

Продължавам с разсъжденията... За да взема датата, трябва да принтирам Js-та и да върна резултата на сървъра, който ще е достъпен едва при следващото презареждане. Ако е AJAX ще усложня скрипта заради принтирането на нещо толкова дребно като датите. За капак ще съм направил няколко заявки към сървъра или ще трябва да върна масив. А какво правя с ботовете на гугъл - специално за тях трябва да подготвя други темплейти или да правя друга обработка в скрипта само заради датите.

Най-чисто е с PHP и не ми се струва логично този въпрос да е пропуснат.

Не издребнявам. Наистина ми трябва добра система, ако искам да се набутам там където съм решил. Средностатистическият потребител цени улесненията.
 

Горе