تبدیل تاریخ میلادی به شمسی، با استفاده از مبدل jdf در php - نسخهی قابل چاپ +- باشگاه کاربران روماک (https://forum.romaak.ir) +-- انجمن: انجمن طراحی سایت و برنامه نویسی (https://forum.romaak.ir/forumdisplay.php?fid=78) +--- انجمن: کد نویسی (https://forum.romaak.ir/forumdisplay.php?fid=79) +---- انجمن: PHP (https://forum.romaak.ir/forumdisplay.php?fid=46) +---- موضوع: تبدیل تاریخ میلادی به شمسی، با استفاده از مبدل jdf در php (/showthread.php?tid=398) |
تبدیل تاریخ میلادی به شمسی، با استفاده از مبدل jdf در php - saberi - ۹۴/۶/۲۳ یکی از دردسرهای همیشگی مدیران وبلاگ ها و سایت های فارسی زبان، مشکل نمایش تاریخ شمسی در صفحاتشان است، البته این مشکل برای سایت ها نمود بیشتری دارد چرا که وبلاگ ها معمولا از طریق سرویس دهنده خود می توانند تاریخ مطالب و محتوا را به بازدیدکنندگان به راحتی نشان دهند، اما در سایت ها وضع کمی فرق می کند، چرا که تاریخ قریب به اتفاق سرورها به میلادی است و از طرفی منطقه زمانی نیز در بیشتر سرورها بر روی GMT قرار دارد، در حالی که کشور ما ایران، به صورت استاندارد در منطقه زمانی 3:30+ GMT (و با تغییر ساعت در منطقه زمانی 4:30+ GMT) قرار گرفته است؛ در این مطلب می خواهیم به کمک برنامه مبدّل تاریخ هجری شمسی (jdf) که توسط برنامه نویسان ایرانی و به PHP نوشته و توسعه داده شده است، روش تبدیل تاریخ میلادی به شمسی را آموزش دهیم و مشکل منطقه زمانی را نیز حل کنیم.
دانلود مبدل تاریخ میلادی به شمسی به زبان php
قبل از بررسی ادامه آموزش، ابتدا آخرین نسخه برنامه مبدّل تاریخ هجری شمسی (jdf) را از لینک زیر یا فایل پیوست شده در انتهای مقاله دریافت کنید: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. تبدیل تاریخ استاتیک میلادی به شمسی پس از دریافت فایل بالا، ابتدا تاریخ و زمان میلادی را به صورت Timestamp استاندارد (روز-ماه-سال) و (ثانیه-دقیقه-ساعت) از دیتابیس یا از سرور دریافت می کنیم، سپس پس از تجزیه موارد اضافه از طریق تابع explode در php و نهایتا تبدیل آرایه ها به متغیر با کمک list، با تابع mktime، تاریخ و زمان را به صورت Unix در می آوریم؛ سپس تاریخ را به تابع jdate می دهیم و تبدیل شده شمسی آن را دریافت می کنیم؛ مثال زیر روشن است: *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- چنانچه خطای Fatal error: Call to undefined function: date_default_timezone_set() on line 12 را دریافت کردید، خط مربوط به date_default_timezone_set را در لاین 12 حذف کنید یا به صورت کامنت در آورید (با افزودن // در ابتدای آن)، نمایش خطا به این دلیل است که قابلیت date_default_timezone_set تنها برای نسخه 5.1.0 به بعد در php قابل دسترس است. - در کد بالا ما تاریخ را در متغیر now و زمان را در متغیر time داریم و اختلاف از GMT را برابر صفر قرار داده ایم (اگر زمان سرور شما بر روی GMT تنظیم شده است باید برای اختلاف 3:30 عدد 12600 و برای 4:30 عدد 16200 را قرار دهید). - هر ساعت اختلاف از GMT برابر است با 60 دقیقه ضرب در 60 ثانیه (60*60) و نتیجه برابر است با 3600 ثانیه (یک ساعت برابر 3600 ثانیه)؛ 3:30 برابر می شود با 12600 و 4:30 برابر است با 16200 ثانیه. - list، آرایه های حاصل از تجزیه با تابع explode را در مقادیر متغیرها ذخیره می کند. - تابع jdate یکی از توابع مفید و اصلی فایل jdf.php است که تاریخ میلادی را به شمسی تبدیل می کند. - نهایتا نیز متغیر jalali_date را به خروجی می دهیم. |