اگه شی date رو بکار ببریم، جاوا اسکریپت زمان منطقه ای رو اعمال می کنه.مگه شما دارید زمان رو از JavaScript میگیرید که میخواید زمان منطقه ای و تابستانی رو از اون جدا کنید؟
البته اگر ما زمان دلخواه رو به عنوان پارامتر بهش ارجاع نداده باشیم! در اونصورت زمان فعلی رایانه کاربر رو نمایش میده.اگه شی date رو بکار ببریم، جاوا اسکریپت زمان منطقه ای رو اعمال می کنه.
خب اگر اینکار رو نکنید پس چطور میخواید ثانیه به ثانیه مثل یک ساعت تایمی که از سرور گرفتید رو بهش اضافه کنید؟وقتی تاریخ رو بر حسب زمان یونیکس از سرور می گیریم، بنظرتون دلیلی داره که بخوایم توی جاوا اسکریپت شی date رو بکار ببریم؟
توابع تاریخ و زمان رو بلدم.این صفحه و مثالهاش رو ببینید اونوقت میتونید چیزی که لازم دارید رو ایجاد کنید.
مشکلی که هست اینه که من بر حسب تایم استمپ یونیکس یه زمان (مثلا 10 ساعت و 15 دقیقه و 40 ثانیه بعد از زمان فعلی) رو توی سرور به دست می یارم و به جاوا اسکریپت می دم.var today = new date()
var d1 = new date("october 13, 1975 11:13:00")
var d2 = new date(79,5,24)
var d3 = new date(79,5,24,11,33,0)
var d1 = new Date("October 13, 1975 11:13:00");
توی پی اچ پی این تابع رو بکار بردم:در هرصورت شما کدی که نوشتید رو در اینجا قرار بدید تا ببینم شما به چه صورت عمل کردید.
date_default_timezone_set('Asia/Tehran');
var d1 = new Date().getTimezoneOffset();
d1=d1*60*1000;
var d2 = new Date().getTime();
userDate=d2+d1;
یک سوال میشه موضوع رو دقیقا توضیح بدید که برای چه کاری میخواید اینکار رو انجام بدید؟حالا جاوا اسکریپت با استفاده از ساعت کلاینت و زمانی که از سرور گرفته، باید یه تایمر ایجاد کنه.
ولی اون چیزی که شما در پست شماره 7 مطرح کردید کاملا با اون فرق داره...من باید یه تایمر بنویسم که زمان رو از سرور می گیره و نمایش می ده.
خب پس چرا اومدید از این تکه کد استفاده کردید:تنها مشکلی که هست اینه که زمانی که از سرور می گیرم، برحسب زمان ایران هست و این مسئله روی دقت تایمر اثر منفی داره.
[COLOR=#000000][COLOR=#0000BB]date_default_timezone_set[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'Asia/Tehran'[/COLOR][COLOR=#007700]);[/COLOR][/COLOR]
یک سوال میشه موضوع رو دقیقا توضیح بدید که برای چه کاری میخواید اینکار رو انجام بدید؟
شما در پست اول گفتید که میخواید ساعت سرور رو نمایش بدید:
ولی اون چیزی که شما در پست شماره 7 مطرح کردید کاملا با اون فرق داره...
خب پس چرا اومدید از این تکه کد استفاده کردید:
کد:[color=#000000][color=#0000bb]date_default_timezone_set[/color][color=#007700]([/color][color=#dd0000]'asia/tehran'[/color][color=#007700]);[/color][/color]
می خوام یه سیستم مناقصه بسازم.یک سوال میشه موضوع رو دقیقا توضیح بدید که برای چه کاری میخواید اینکار رو انجام بدید؟
باید زمانی که مناقصه می خواد به پایان برسه رو از سرور بگیرم و تایمر رو بر حسب توابع جاوا اسکریپت بدست بیارم.شما در پست اول گفتید که میخواید ساعت سرور رو نمایش بدید:
برای ساعت وب سایتم از این تابع استفاده کردم ولی این تابع روی تایمر مناقصه هم تاثیر می ذاره.خب پس چرا اومدید از این تکه کد استفاده کردید:
اگر اشتباه نکنم شما به یک چیزی مثل countdown timer نیاز دارید. برای کاری که شما مدنظر دارید گزینه مناسبی هست.باید زمانی که مناقصه می خواد به پایان برسه رو از سرور بگیرم و تایمر رو بر حسب توابع جاوا اسکریپت بدست بیارم.
قبلا به این موضوع فکر کرده بودم ولی چون پی اچ پی و جاوا اسکریپت هردو زمانها رو از یه تاریخ مشخص محاسبه می کنن، نمی شه از این روش استفاده کرد و تایمرها توی کشورهای مختلف زمان های مختلفی نمایش می دن. چون ساعت جاوا اسکریپت توی کشورهای مختلف عقب و جلو می ره.برای این تایمر هم نیازی نیست که ساعت رو از طریق سیستم کاربر چک کنید کافیه تایم های مناسب رو از سرور دریافت و طبق اون تایمر رو ایجاد کنید.
بطور کلی روش مشخصی برای اینکار در نظر گرفته نشده، شما باشید الگوریتمش رو بلد باشید.راهی نیست که بشه توی جاوا اسکریپت زمان تابستانی رو محاسبه کرد؟
تصمیم گرفتم که توی سرور عدد 210*60 رو از زمان فعلی کم کنم تا زمان گرینویچ بدست بیاد و این زمان رو برای کلاینت بفرستم. توی کلاینت هم زمان منطقه ای رو هم بدست می یارم و ازمان فعلی کم می کنم تا زمان گرینویچ بدست بیاد و بعد تایمر رو ایجاد کنم.بطور کلی روش مشخصی برای اینکار در نظر گرفته نشده، شما باشید الگوریتمش رو بلد باشید.