آموزش تبدیل تاریخ شمسی به تاریخ میلادی در php

ارمیا مزرعه
1403/07/16
790
آموزش تبدیل تاریخ شمسی به تاریخ میلادی در php

امروز در مورد تبدیل تاریخ شمسی به تاریخ میلادی php صحبت خواهیم کرد. در این مقاله از سبزلرن، به طور ساده و قدم به قدم، نحوه تبدیل این دو نوع تاریخ به یکدیگر را برای شما توضیح خواهم داد.

اولین گامی که باید برای انجام این تبدیلات بردارید، آشنایی با تفاوت بین تاریخ‌های شمسی و میلادی است. تاریخ شمسی بر اساس تقویم هجری شمسی استفاده می‌شود که سال‌ها و ماه‌ها براساس حرکت خورشید محاسبه می‌شوند. اما تاریخ میلادی بر اساس تقویم گریگوریان استفاده می‌شود که بر اساس حرکت خورشید و ماه محاسبه می‌شود.

حالا فرض کنید که شما یک توسعه‌دهنده وب هستید و می‌خواهید به کاربرانتان اجازه دهید تا تاریخ‌های شمسی را وارد کرده و آن‌ها را به تاریخ‌های میلادی تبدیل کنند. در این مقاله، ما به شما نحوه نوشتن کد PHP برای انجام این عملیات را آموزش خواهیم داد تا شما بتوانید این امکان را به وبسایت یا برنامه خود اضافه کنید.

آموزش قدم به قدم تبدیل تاریخ شمسی به میلادی در PHP

پیشنهاد دوره: آموزش ساخت ربات تلگرام با PHP

آموزش قدم به قدم تبدیل تاریخ شمسی به میلادی در PHP

در قدم اول زبان PHP باید روی سیستم عامل شما نصب شده باشد؛ در ادامه یک فایل با فرمت php بسازید و وارد محیط برنامه نویسی بشید تا کد نویسی را آغاز کنیم.

قدم صفر | آشنایی با کتابخانه JDF

این کتابخانه توسط برنامه نویسان ایرانی توسعه داده شده و یکی از کامل‌ترین کتابخانه های کار با تاریخ شمسی در PHP است؛ این کتابخانه کاملا رایگان است و برنامه‌نویس‌ها می‌توانند از آن در پروژه‌های خود استفاده کنند.

در ادامه به صورت مرحله به مرحله آموزش تبدیل تاریخ شمسی به تاریخ میلادی php خواهیم دید.

قدم 1 | فراخوانی JDF

در ابتدا برای شروع کار ابتدا باید این کتابخانه را به پروژه خود اضافه کنید؛ به کمک دستور زیر می‌توانید این کار را انجام دهید:

<?php
    Require_once "jdf.php";
?>

قدم 2 | آشنایی با تابع jdate

سینتکس کلی تابع jdate به شکل زیر است:

jdate(format, timestamp, none, time_zone, num_lang);

تنها پارامتر اجباری این تابع، format است و مابقی پارامترها اختیاری هستند و مقادیر پیشفرض آن‌ها به شکل زیر است:

 jdate(format, time(), none, 'Asia/Tehran', 'fa');

اگر پارامتر دوم یعنی timestamp را وارد نکنید و آن را به شکل time() بنویسید به‌صورت خودکار زمان فعلی را استفاده می‌کند. پارامتر سوم هم برای ما بلا استفاده است پس به پارامتر چهارم یعنی time_zone می‌پردازیم؛ این پارامتر منطقه زمانی را مشخص می‌کند و به‌صورت پیشفرض روی Asia/Tehran است.

پارامتر آخر num_lang است که زبان نمایش اعداد را مشخص می‌کند که به‌صورت پیشفرض روی fa یعنی فارسی است و اگر می‌خواهید انگلیسی باشد en را قرار بدهید.

قدم 3 | آشنایی با پارامتر format

پیشنهاد مطالعه: مقایسه nodejs و php 

قدم 3 | آشنایی با پارامتر format

پارامتر format را به 3 شکل زیر می‌توان نوشت:

Y/m/d
y/m/d
y/n/j

باید همین اول کار ذکر کنم که بزرگ و کوچک اعداد در خروجی نهایی تاثیرگذار است؛ در عبارت اول از Y بزرگ استفاده کردیم که معنی سال رو میده و بزرگ بودن آن یک خروجی 4 رقمی به ما میده مثلا: 1403 و حرف m به معنی ماه است و همینطور حرف d به معنی روز است.

در ادامه y کوچک به این معنی است که سال رو به شکل دو رقمی بنویس، مثلا: 03 که همون مخفف 1403 هست و در عبارت آخر به جای m برای ماه از  n استفاده کردیم و این معنی رو میده که ماه رو تک رقمی نشون بده و برای روز هم همین شرایطت است.

قدم 4 | خروجی نهایی

به شکل واضح بریم اجراشون کنیم تا بهتر درک کنید:

<?php
echo jdate('Y/m/d', time(), none, 'Asia/Tehran', 'fa');
echo jdate('y/m/d', time(), none, 'Asia/Tehran', 'fa');
echo jdate('y/n/j', time(), none, 'Asia/Tehran', 'fa');
?>

خروجی این کد به شکل زیر خواهد بود:

1403/07/08
03/07/08
03/7/8

نکته : ویرایشگر کد سایت از اعداد فارسی پشتیبانی نمی‌کنه و خروجی به شکل انگلیسی نمایش داده می‌شه؛ اما برای شما این خروجی به‌صورت فارسی خواهد بود.

نتیجه گیری

در این مقاله آموزش تبدیل تاریخ شمسی به تاریخ میلادی php را با استفاده از کتابخانه JDF به شما آموزش دادیم؛ اما قطعا این تنها روش تبدیل تاریخ‌ها در php نیست و روش‌های بسیار زیادی وجود دارد که در صورت درخواست شما در بخش کامنت‌ها روش‌های متنوع بیشتری به این مقاله اضافه خواهد شد.

اگر دوست دارید با پروژه‌های کاربردی در زمینه  php آشنا بشید پیشنهاد میکنیم یک‍‌ سر به دوره پروژه های کاربردی با PHP بزنید.

اگر هرگونه سوالی یا ابهامی هنوز برای شما باقی مونده از بخش نظرات برای ما ارسال کنید تا پاسخ آن را در اسرع وقت دریافت کنید.

نظرات
ثبت نظر جدید

نظری برای این مقاله ثبت نشده است