PDA

View Full Version : سوال: ساعت سرورم تنظیم نیست، با برنامه نویسی چطور می تونم تنظیمش کنم؟



idocsidocs
چهارشنبه 25 آبان 1390, 12:30 عصر
ساعت سرورم تنظیم نیست، با برنامه نویسی چطور می تونم تنظیمش کنم؟

peachcms
چهارشنبه 25 آبان 1390, 12:34 عصر
با سلام

ساعت بیشتر سرور ها به صورت پیشفرض بر روی GMT هست که شما با کد زیر در اول برنامه میتونین ساعت رو بر روی ایران تنظیم کنید


date_default_timezone_set('Asia/Tehran');

idocsidocs
چهارشنبه 25 آبان 1390, 13:38 عصر
ساعت بیشتر سرور ها به صورت پیشفرض بر روی GMT هست که شما با کد زیر در اول برنامه میتونین ساعت رو بر روی ایران تنظیم کنید
منظورم این نبود. الان ساعت سرور رو روی ساعت ایران ست کردم ولی ساعت سرور چند ثانیه جلو هست. این اختلاف زمانی رو چطور حل کنم؟

pejman_view
چهارشنبه 25 آبان 1390, 15:25 عصر
سلام

خوب شما همیشه برای تبدیل تاریخ در PHP از timestamp استفاده کنید به مثال زیر نگاه کنید:



$diff_time = 60; //50 seconds will be added to current time;
$diff_time = -60; //50 seconds will be deducted of current time;
$now = date("H:i:s",time()+$diff_time);
echo $now;

idocsidocs
چهارشنبه 25 آبان 1390, 16:08 عصر
خوب شما همیشه برای تبدیل تاریخ در PHP از timestamp استفاده کنید به مثال زیر نگاه کنید:
از این روش می شه استفاده کرد ولی اگر بخوام سایت رو بصورت انبوه بفروشم، دیگه نمی دونم ساعت هر سرور چقدر جلو یا عقب رفته.

راهی نیست که این مشکل رو حل کنم؟

peachcms
چهارشنبه 25 آبان 1390, 16:54 عصر
شما برای اینکه تمامی اسکریپت ها با هم یکسان باشند باید برنامه ای بنویسید که برای زمانی که اسکریپت نصب میشه زمان سرور شما رو دریافت کنه و با زمان سرور جاری چک بشه و اختلاف رو به دست بیارید و در فایل کانفیگ سیو کنین و برای timestamp استفاده کنین به همین راحتی اما ی مقدار خلاقیت و دقت میخاد که حالت های مختلف رو بتونین پوشش بدین

مثلا سرور جدید زمانش از سرور شما جلو تر باشه یا عقب تر که از timestamp کم کنین یا زیاد

pejman_view
چهارشنبه 25 آبان 1390, 17:01 عصر
اگر دارید برنامه ایی حرفه ایی می نویسید پس بنظرم یک سایت پشتیبانی هم خواهد داشت و طبق گفته Unique (http://barnamenevis.org/member.php?11933-Unique) و peachcms (http://barnamenevis.org/member.php?167058-peachcms) می توانید به راحتی با یک سرور ارتباط برقرار کرده و زمان نرم افزارتون را آپدیت کنید. و دلیلم از گفتن سایت پشتیبانی این بود که می توانید در سرور پشتیبانی یک time server بسازید.

Unique
چهارشنبه 25 آبان 1390, 17:06 عصر
همه این راه ها نواقصی دارند ، شما باید زمان جاری را از Time Server های معتبر دنیا بگیرین ، این مراجع را مطالعه کنین :

http://www.kloth.net/software/timesrv1.php
http://stackoverflow.com/questions/6959114/get-time-from-timeserver

لازم نیست هر بار این کار را بکنید ، یکبار بگیرید و بعدش اختلاف را در بیارین ، اما از کدوم هاستینگی دارین سرویس میگیرین که خودشون time سرویس دهنده share را نمیتونن تنظیم کنند ؟؟!

idocsidocs
چهارشنبه 25 آبان 1390, 18:20 عصر
همه این راه ها نواقصی دارند ، شما باید زمان جاری را از Time Server های معتبر دنیا بگیرین ، این مراجع را مطالعه کنین :
درسته، بهترین راه استفاده از Time Server های معتبر دنیا هست.

لازم نیست هر بار این کار را بکنید ، یکبار بگیرید و بعدش اختلاف را در بیارین ، اما از کدوم هاستینگی دارین سرویس میگیرین که خودشون time سرویس دهنده share را نمیتونن تنظیم کنند ؟؟! کاش یکی بود، توی دوتا سرور تست کردم، یکیش نسبت به سیستم خودم چند ثانیه عقب بود و یکیش چند ثانیه جلو بود !


http://www.kloth.net/software/timesrv1.php
http://stackoverflow.com/questions/6...rom-timeserver (http://stackoverflow.com/questions/6959114/get-time-from-timeserver)
این لینکها رو می خونم و چک می کنم.

pejman_view
چهارشنبه 25 آبان 1390, 18:37 عصر
سلام

دوست عزیز (idocsidocs) شرمنده اسمتم نمی دونم اما فکر نکنم برنامه ای باشه که اختلاف چند ثانیه زیاد باشه... مگر اینکه برای لاگ کردن استفاده کنید که آن هم تا حالا برای این اختلاف زمان به مشکل بر نخوردم برای پشتیبانی می تونی چند ثانیه رو پرتی بذاری...

با تشکر

idocsidocs
چهارشنبه 25 آبان 1390, 18:47 عصر
دوست عزیز (idocsidocs) شرمنده اسمتم نمی دونم اما فکر نکنم برنامه ای باشه که اختلاف چند ثانیه زیاد باشه... مگر اینکه برای لاگ کردن استفاده کنید که آن هم تا حالا برای این اختلاف زمان به مشکل بر نخوردم برای پشتیبانی می تونی چند ثانیه رو پرتی بذاری...اختلاف زمانی در حد 30-40 ثانیه هست و این زمان برای کار من خیلی زیاده.


همه این راه ها نواقصی دارند ، شما باید زمان جاری را از Time Server های معتبر دنیا بگیرین ، این مراجع را مطالعه کنین :
الان این روش رو یه تست کردم ولی دوتا مشکل داشت، اول اینکه روی بعضی از سرورها سوکت فعال نیست و دوم اینکه رفت برگشت بسته ها از طریق نت ممکنه طول بکشه و باعث اختلاف زمانی بشه. بنظرم بهترین راه همونه که به ادمین بگم ساعت سرورش تنظیم نیست و با پشتیبان سایت تماس بگیره و مسئله رو پیگیری کنه.

نظر شما چیه؟

pejman_view
چهارشنبه 25 آبان 1390, 19:10 عصر
سلام

راه خوبیه.
اما خوب طبق گفته خودتون تو فروش انبوه همه نمی تونن با تماس با سرورشون مشکلشون رو برطرف کنند. به نظر من اگر شما یک سرور درست کنید می توانید راحت این مشکل را برطرف کنید،
یک فایل php درست کنید که فقط timestamp را نمایش بده اونو روی سرور خودتو بذارید.
حالا تو نرم افزار کلاینتتون این کار کنید:


<?php
$time = file_get_contents('http://www.example.com/time.php');
$time = (int)$time;
echo $time;
?>


اینطور دقیق ترین زمان بدست میاد، و نهایتاً اختلاف زمان به 1 ثانیه هم نمی رسه...