برگزیده های پرشین تولز

سوال در مورد تابع time()

siyahi

کاربر تازه وارد
تاریخ عضویت
2 دسامبر 2006
نوشته‌ها
15
لایک‌ها
0
با سلام
دوستان من برای قسمتی از وب سایتم نیاز به ایجاد محدودیت زمانی دارم
برای بدست آوردن زمان از تابع time() استفاده می کنم
اولا چطور اختلاف زمانی با سرور را بر طرف کنم
همچنین خروجی این تابع چیزی شبیه به این می باشد
10:18:50 ب.ظ
من برای ایجاد محدودیت زمانی نیاز دارم که ساعت رو ، از جنس عدد داشته باشم که بتونم از اون اعداد رو کم و زیاد کنم و یا با یک عدد دیگه مقایسه کنم.
حالا باید چکار کنم
آیا برای بدست آوردن زمان باید از تابع دیگری استفاده کنم ؟
و یه مشکل دیگه وقتی از تابع time() استفاده می کنم اگر یونی کدم UTF-8 باشه تبدیل به" 10:25:06 Ȯټ/font>"
میشه باید چکار کنم
ممنون
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
ASP یا ASP.NET ؟
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
225
لایک‌ها
4
به نظر من شما اگر زمان را با تابع ()Now به دست آورید بسیار بهتر است، چون تاریخ و زمان کامل را در بر دارد.

در ضمن متغیری که در آن داده ای از نوع زمان نگهداری می شود با متغیری از همان جنس می تواند مقایسه و جمع و تفریق شود.

در مورد یونیکد هم فکر نکنم مشکلی پیش آید. این مشکل مربوط به اجرای برنامه روی لوکال (کامپیوتر فارسی شما) هست ورنه زبان ساعت سرور انگلیسی است.

برای اختلاف زمانی هم یک بار همین تابع را که گفتم را روی سرور و یک بار روی لوکال (ساعت ایران) حساب کنید و تفاوتشان را حساب کنید و همیشه روی ساعت سرور این تفاوت را اعمال کنید تا زمان به وقت ایران باشد. البته بعضی وقت ها در سال شاید 1 ساعتی فرق می کند چون شاید ایران ساعت جلو بکشد، شاید نکشد و تفاوت دارد چند روزی این ساعت جلو کشیدن ها در دنیا. (اگر محدودیت زمانی ربطی به ساعت محلی ایران نداشته باشد اصلاً این کار هم لازم نیست)
 

siyahi

کاربر تازه وارد
تاریخ عضویت
2 دسامبر 2006
نوشته‌ها
15
لایک‌ها
0
شرمنده یادم رفت بگم asp کلاسیک منظورم بود
 

siyahi

کاربر تازه وارد
تاریخ عضویت
2 دسامبر 2006
نوشته‌ها
15
لایک‌ها
0
به نظر من شما اگر زمان را با تابع ()Now به دست آورید بسیار بهتر است، چون تاریخ و زمان کامل را در بر دارد.

در ضمن متغیری که در آن داده ای از نوع زمان نگهداری می شود با متغیری از همان جنس می تواند مقایسه و جمع و تفریق شود.

در مورد یونیکد هم فکر نکنم مشکلی پیش آید. این مشکل مربوط به اجرای برنامه روی لوکال (کامپیوتر فارسی شما) هست ورنه زبان ساعت سرور انگلیسی است.

برای اختلاف زمانی هم یک بار همین تابع را که گفتم را روی سرور و یک بار روی لوکال (ساعت ایران) حساب کنید و تفاوتشان را حساب کنید و همیشه روی ساعت سرور این تفاوت را اعمال کنید تا زمان به وقت ایران باشد. البته بعضی وقت ها در سال شاید 1 ساعتی فرق می کند چون شاید ایران ساعت جلو بکشد، شاید نکشد و تفاوت دارد چند روزی این ساعت جلو کشیدن ها در دنیا. (اگر محدودیت زمانی ربطی به ساعت محلی ایران نداشته باشد اصلاً این کار هم لازم نیست)

دوست عزیز ممنون ولی وقتی من از تابع now() استفاده کنم دیکه نمی تونم ناریخو هجری شمسی کنم
از طرفی اگر فرض بگیریم که اختلاف زمانی با سرور 5 ساعت باشه باید بنویسم! :​
کد:
 T= time() + 5

این جوری که نمیشه اشتباه میشه
کسی راه بهتری سراغ نداره​
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
225
لایک‌ها
4
در مورد تبدیل به تاریخ شمسی، بسته به کدتان با ()Now می شود و احتمالاً شما بایستی با تابع ()Date کار کنید ولی با تابع ()Time نمی شود چون ای،ن زمان در روز را نشان می دهد.

برای مثالی هم که زده اید چون واحد کار تابع ()Now یک روز است، جمع با 5 ساعت را این گونه بنویسید:

کد:
T=Now()+(5/24)
 
بالا