ساعت سرور

mt

Member
سوال در مورد ساعت سرور

سلام

يه سوال: چطوري ميشه ساعت سرور را بروي كلاينت نمايش داد البته منظورم اينه كه كار بكنه يعني دفعه اول ساعت را از روي سرور بخونه و بعد هم كار بكنه

ممنون و متشكر
 

msnasiri

Member
به نظر من بیا اول ساعت رو داخل کد جاوا قرار بده وقتی که صفحه کامل لود شده دیگه از اون زمان شروع کنه به جلو رفتن
 

Ocarina

Member
اگه منظورتون از جاوا همون جاوا اسکریپتکه این ربطی به سرور نداره...
اصولاً جاوا اسکریپت بر روی کلاینت کامپایل و اجرا میشه...
برای اینکار باید با استفاده از یک زبان سمت سرور ساعت سرور رو بخونی و نمایش بدی
مثلاً با PHP خیلی راحت با استفاده از تابع localtime :
PHP:
list($s,$m,$h)=localtime();
خوب حالا ممکنه بخوای کاری کنی که طرف در هر صورت براش زمان درست نشون داده بشه (ممکنه طرف کلاینت ساعت کامپیوترش تنظیم نباشه)... برای اینکار با استفاده از تابع ذکر شده به این صورت که اختلاف ساعت سرور رو با زمان ایران حساب میکنی و با یه جمع و تفریق ساده زمان دقیق ایران بدست میاد...

خوب من خودم از این روش استفاده میکنم:
PHP:
list($secound,$minute,$hours)=localtime();  
$add_hours=8;$add_minute=30; 

if($hours>12)
$hours-=12;

$hours+=$add_hours;
if($hours>12)
$hours-=12;

$minute+=$add_minute;
if($minute>59)
{$minute-=60;$hours++;}
موفق باشید
 
آخرین ویرایش:

ranjbar_2

Member
سلام عزيزم

اول بايد بهتون بگم كه من تقريبا تونستم اين كار رو انجام بدم مي تونيد اون رو روي سايت من ببينيد

ولي روشي كه من كار كردم چندان جالب نيست ولي عمليه

يه توضيح كوچيك :
شما مي تونيد توي asp يا php ساعت سرور رو بخونيد و همين طور مي تونيد كد جاوا اسكريپت توليد كنيد ولي با كد جاوا اسكريت نمي تونيد كد asp اضافه كنيد .


راه حل من :
من اومدم يه تيكه فلش درست كردم كه هر 10 ثانيه يه فايل asp رو اجرا مي كنه كه مقدار ساعت سرور رو به فايل فلش من ميده و اينطوره كه من همزمان ساعت كلاينت و سرور رو دارم

http://www.partplot.com
موفق باشيد
خدانگهدار
 

msnasiri

Member
خب حتماً داخل asp هم دستوری هست که ساعت سرور رو بگیره دیگه
داخل قسمت asp بپرسی باید راحت جوابتو بدن
 

NabiKAZ

Well-Known Member
اون راحی که گفتید از فلش کمک گرفتید به نظرم اصلا اصولی نیست.
ببینید بهترین راه همون راحیه که msnasiri گفتند و ali_moradi یه ازش یه برداشت غلط کردند !
من یه جور دیگه مطرحش میکنم.

کاری که شما انجام میدید به کمک PHP تاریخ مورد نظر سرور رو به کمک توابع مختلفی که وجود داره و یه نمونش رو ali_moradi در کدهای بالا معرفی کردند میخونید و ساعت و دقیقه و ثانیه رو به یه text box مخفی پاس میدید بدین شکل:
PHP:
	<input type="hidden" name="hour" value="<?PHP echo $hour; ?> >
	<input type="hidden" name="min" value="<?PHP echo $min; ?> >
	<input type="hidden" name="sec" value="<?PHP echo $sec; ?> >

بعد هم یه کد جاوا مینویسید که این سه تا text رو به صورت متغییر در بیاره، اینطوری:
کد:
<script type=text/javascript>
var hour, min, sec;
hour=document.getElementById("hour").value;
min=document.getElementById("min").value;
sec=document.getElementById("sec").value;
</script>

از این به بعدش سه تا متغییر در اختیار دارید که ساعت و دقیقه و ثانیه سرور رو در بر داره ، حالا شما فقط کافیه که ساعت خودتون با جاوا اسکریپت بسازید و متغییر ها به صورت متناوب یک واحد افزایش بدید و در واقع یک ساعت خودتون شبیه سازی کنید.

اوووه ! اصلا حواسم نبود ! راه بسیار ساده ترش اینه :
PHP:
<script type=text/javascript>
var hour, min, sec;
hour=<?PHP echo $hour; ?>
min=<?PHP echo $min; ?>
sec=<?PHP echo $sec; ?>

</script>

که بازم سه تا متغییر در اختیار دارید که باید زمان مبنا قرار بدید و ثانیه شمار رو به حرکت در بیارید که اگر برای ادامش توضیح خواستید در خدمتم .

تشکر
نبی
 

tabib_m

Member
بسیار عالی :)
فقط یک نکته نباید یادمون بره
ساعتی که در نهایت ، جاواسکریپت با اون کار میکنه ، مطابق با ساعت گرینویچ هست. بنابراین نباید انتظار داشته باشید که ساعت نمایش داده شده ، مطابق با ساعت محل مشاهده ی صفحه باشه.
موفق باشید.
 

NabiKAZ

Well-Known Member
بسیار عالی :)
فقط یک نکته نباید یادمون بره
ساعتی که در نهایت ، جاواسکریپت با اون کار میکنه ، مطابق با ساعت گرینویچ هست. بنابراین نباید انتظار داشته باشید که ساعت نمایش داده شده ، مطابق با ساعت محل مشاهده ی صفحه باشه.
موفق باشید.
البته نمیشه گفت مطابق ساعت گرینویچه ! چون بعضی سرور های ایرانی ساعتشون به صورت پیشفرض با ساعت ایران ست شده.
به هر صورت باید با PHP اختلاف ساعت محاسبه بشه و ساعت محلی به خروجی و نهایتاً متغییرهای مورد نیاز جاوا اسکریپت پاس داده بشه.

نبی
 

جدیدترین ارسال ها

بالا