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

تابع NOW() و تبدیل به تاریخ ایران

ma_christian

Registered User
تاریخ عضویت
25 ژانویه 2007
نوشته‌ها
368
لایک‌ها
2
محل سکونت
Tehran
سلام
خواستم ببینم که چگونه می توانم تابع now() را به تاریخ ایران تبدیل کنم.

آیا میشه که بدون برنامه نویسی و با دستورات sql اون رو تبدیل کنم؟!

ممنون میشوم کمک کنید.​
 

mosyhey1

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

برای تغییر بخش ساعت به ساعت ایران:

معمولاً ساعت سرور منطبق بر کشور همان سرور است و برای جبران اختلاف:
ابتدا یک دستور Now را روی سرور اجرا کنید مثلاً اینگونه:
کد:
Response.Write(Now())
سپس محاسبه کنید چقدر با ساعت رسمی ایران فاصله دارد. البته اگر ساعت کامپیوتر شما و ساعت سرور هر دو دقیق باشند این اختلاف هیچ گاه در ثانیه نیست. اکثراً اختلاف n ساعت و 30 دقیقه می باشد. مثلاً 3.5 ساعت یا 8.5 و ....
حال که اختلاف معلوم شد بایستی این مقدار را با ساعتی که از سرور می گیرید جمع کنید تا ساعت محلی به دست آید. مثلاً اگر با کسر 10.5 ساعت از ساعت سرور، ساعت ایران به دست می آید می توانید ساعت ایران را اینگونه به دست آورید و آن را چاپ کنید:
کد:
Response.Write(Now()+(-10.5/24))
توجه کنید اختلاف را درست اعمال کنید چون جمع با 20 ساعت یا کسر 4 ساعت هرچند در زمان یکسان است ولی تاریخ روز را عوض می کند.
همچنین توابع بسیاری برای کار با ساعت و تاریخ هست که این یکی از ساده ترین راه ها بود.
همچنین به علت اختلاف ساعات بهاری و تابستانی و زمان جلو و عقب کشیدن ساعت کشور ها و این که ایران برنامه اش مشخص نیست ممکن است اشکالاتی در حوالی بهار یا پاییز پیش بیاید که بایستی بررسی کنید.

برای تغییر بخش تاریخ به هجری شمسی:

امکاناتی را برنامه نویسی net. در اختیار شما می گذارد ولی برای asp کلاسیک نیز کد های متنوعی هم در این فروم و هم در فروم های دیگر موجود است که با جستجو به آن می رسید.
 
بالا