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

نویسنده:

تبدیل تاریخ میلادی به شمسی در php :تا به‌ حال به این موضوع فکر کرده ‌اید که اگر امکان استفاده از تاریخ در وب سایت ها وجود نداشت، چه اتفاقی می افتاد؟ تقریبا بدون ثبت و خواندن تاریخ در وب سایت ها، پیاده سازی هیچ کدام از خدماتی که در حال حاضر در سایت ها ارائه می شوند، کار ساده ای نخواهد بود. ثبت نام کاربران، گزارش های مالی، زمان پست های ارسالی و… نمونه ای از خدماتی است که با تاریخ در ارتباط اند. بنابراین کار با تاریخ یکی از رایج ترین مواردی است که در طراحی و برنامه نویسی سایت ها صورت می گیرد. کمتر سایت و یا اپلیکیشنی پیدا خواهید کرد که از تاریخ استفاده نکرده باشد.

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

روش های زیادی برای استفاده از تاریخ در PHP وجود دارد. برای کار با تاریخ توابع و کتبخانه های زیادی توسعه داده شده است که استفاده از آن ها با توجه به مستندات ارائه شده کار چندان سختی نخواهد بود. اما تاریخی که به صورت پیش فرض در این زبان استفاده می شود به صورت میلادی است. یکی از مشکلات برنامه نویسان و طراحان ایرانی، استفاده از تاریخ شمسی و قابلیت تبدیل آن به تاریخ میلادی در سایت ها است. در این مقاله، روش های مختلف تبدیل تاریخ شمسی به میلادی در زبان برنامه نویسی php را به شما آموزش خواهیم داد. پس اگر قصد دارید از تاریخ شمسی در وب اپلیکیشن های خود استفاده کنید، از شما دعوت می کنیم تا در انتهای این مقاله همراه ما باشید.

تبدیل تاریخ شمسی به میلادی در PHP با استفاده از کتابخانه Verta

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

ورتا (Verta) پکیجی برای تبدیل تاریخ شمسی و میلادی به یکدیگر است که برای فریم ورک لاراول عرضه شده است. این پکیج توابع کمکی زیادی را شامل می شود که کاربران با بکارگیری آن ها می توانند به راحتی تبدیلات تاریخ را انجام دهند. زبان PHP دارای کلاسی برای تاریخ و زمان است که پکیج ورتا از همین کلاس ارث بری کرده است. ورتا از الگوریتم تبدیل تاریخ شمسی به میلادی و بالعکس استفاده می کند. الگوریتم مبدل تاریخی که در این پکیج استفاده شده است بر اساس الگوریتم تاریخ جلالی وحید سهراب لو، روزبه پورنادر و محمد توسی می باشد.

برای استفاده از این پکیج در وب اپلیکیشن های خود نیاز به نصب و استفاده از کامپوزر (Composer) دارید. کامپوزر یک ابزار کامند لاین است که به منظور کاهش وابستگی نرم افزارها به کتابخانه ها و پکیج های خارجی ارائه شده است. با استفاده از این ابزار به راحتی می توان پکیج ها و کتابخانه را دریافت و مدیریت کنید. منبع اصلی پکیج ها و کتبخانه های کامپوزر سایت Packagist است که به عنوان مخزن پیش‌فرض پروژه‌های PHP شناخته می شود. در این سایت توسعه دهندگان مختلف کتابخانه ها و پکیج های مختلف پروژه ‌های خود را در دسترس سایر توسعه دهندگان قرار می دهند.

آموزش نصب Composer

ابتدا باید ابزار کامپوزر را باید دانلود کنید. برای دانلود کامپوزر به سایت رسمی این برنامه به نشانی getcomposer.org مراجعه کنید. برای دانلود آخرین نسخه این برنامه مطابق عکس زیر بر روی Download

در صفحه بعد که هدایت می شوید، روش های مختلفی برای نصب کامپوزر وجود دارد. در این بخش ساده ترین روش نصب این ابزار بررسی می شود. در این صفحه برای دریافت فایل نصبی کامپوزر بر روی عبارت Composer-Setup.exe کلیک کنید.

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

پس از دریافت فایل اجرایی کامپوزر، آن را اجرا کنید و مراحل را مانند تصاویر دنبال کنید. در این مرحله از نصب باید نشانی فایل اجرایی php را برای نصب Composer مشخص نمایید. فایل اجرایی PHP معمولا توسط نرم افزارهایی مانند Xampp، Wamp و… نصب می شود. البته معمولا فایل نصبی به صورت اتوماتیک آدرس فایل اجرایی PHP را شناسایی می کند. اگر نرم‌ افزار نصب نتوانست به صورت خودکار این فایل را شناسایی کند، لازم است تا با زدن دکمه‌ Browse این مرحله را به صورت دستی پیش ببرید. پس انجام این کار بر روی گزینه Next کلیک کنید.

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

برای نصب این ابزار باید به اینترنت متصل باشید. پس این مرحله، دیگر نیازی به تغییرات و انجام عمل خاصی وجود ندارد و کافی است بر روی گزینه های Next و در نهایت Install کلیک کنید. تبریک می گویم، کامپوزر شما نصب شده است. اکنون می توانیم برای دریافت کتابخانه ورتا از این ابزار استفاده کنیم.

تبدیل تاریخ شمسی به میلادی در PHP

نصب کتابخانه Verta

برای نصب و بکارگیری کتابخانه ورتا در کامند لاین پروژه خود، دستور زیر را وارد کنید.

$ composer require hekmatinasser/verta

حال اگر بخواهید از این کتابخانه در پروژه لاراولی خود استفاده کنید، باید این پکیج را درون پروژه خود اضافه کنید. برای این کار دستور زیر را وارد کنید. البته در صورتی که قصد دارید از این پکیج در پروژه های غیر لاراولیاستفاده کنید، می توانید این مرحله را نادیده بگیرید.

// config/app.php
'providers' => [
    ...
    Hekmatinasser\Verta\VertaServiceProvider::class,

],

'alias' => [
    ...
    'Verta' => Hekmatinasser\Verta\Verta::class,
]

نحوه استفاده از کتابخانه Verta

نحوه استفاده از این پکیج در نرم افزارها بسیار ساده است. کافی است در بالای هر فایلی از پروژه که نیاز به استفاده از کلاس ورتا دارید، از دستور زیر استفاده کنید. با این کار به راحتی می توانید از توابع پیش فرض این پکیج در کدهای خود استفاده کنید. پکیج ورتا توابع بسیار زیادی را به منظور کار با تاریخ برای توسعه دهندگان آماده کرده است. با استفاده از این توابع می توانید برای بدست آوردن تاریخ و زمان کنونی شمسی، نمایش تاریخ شمسی، نمایش تاریخ میلادی، تبدیل اعداد انگلیسی به فارسی و…. استفاده کنید.

use Verta;
// or
use Hekmatinasser\Verta\Verta;

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

$v = new Verta('2016-12-27 14:12:32');
$v = Verta::instance('2016-12-25 11:12:36');
$v = Facades\Verta::instance('2016-12-25 11:12:36');

برای تبدیل تاریخ از میلادی به شمسی به صورت ساده، می توانید از دستور زیر استفاده کنید :

return Verta::getGregorian(1394,10,4);
 //جواب این دستور به صورت زیر است
 // [۲۰۱۵,۱۲,۲۵]

همچنین برای تبدیل تاریخ از شمسی به میلادی به صورت ساده، از دستور زیر استفاده کنید :

return Verta::getJalali(2015,12,25); 
 //جواب این دستور به صورت زیر است 
 // [۱۳۹۴,۱۰,۴]

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

تبدیل تاریخ شمسی به میلادی در PHP با استفاده از کتابخانه Jdf

دومین روش استفاده از کتابخانه Jdf است. Jdf کتابخانه ای برای تبدیل تاریخ شمسی و میلادی به یکدیگر است که برای زبان های برنامه نویسی مختلف توسعه داده شده است. استفاده از این روش نسبت به روش قبل از مزیت های کمتری برخودار است. زیرا پکیج ورتا امکانات بسیار زیادی را برای کار با تاریخ در اختیار توسعه دهندگان وب قرار می دهد. ازطرفی دیگر پکیج ورتا با استفاده از کدنویسی شی گرا پیاده سازی شده است، به همین دلیل می تواند به راحتی در هر بخش از کدهای شما استفاده شود. همچنین علاوه بر تمیز شدن کدهای شما، باعث کاهش میزان کدنویسی می شود.

بنابراین زمانی که نیاز به استفاده از توابع مختلف کار با تاریخ احساس نمی شود، استفاده از کتابخانه Jdf می تواند گزینه مناسبی باشد. همچنین اگر پروژه شما به صورت شی گرا پیاده سازی نشده است، استفاده از این روش پیشنهاد نمی شود. در این کتابخانه دو تابع gregorian_to_jalali و jalali_to_gregorian از توابع بسیار کاربردی برای تبدیل تاریخ از میلادی (گرگوری) به هجری شمسی (جلالی) و برعکس می‌باشند. توابع مورد استفاده در این کتابخانه برای تبدیل تاریخ میلادی به شمسی با استفاده از PHP در یک فایل تعریف شده اند. پس در هر جایی از که نیاز به تبدیل تاریخ داشته باشید کافی است که ابتدا فایل اصلی کتابخانه را دانلود و سپس در پروژه خود Include کنید. بعد از این کار می توانید به راحتی از توابع این کتابخانه در کدهای خود استفاده کنید.

راهنمای تابع gregorian_to_jalali و jalali_to_gregorian

این تابع ها دارای ۴ پارامتر (آرگومان) بوده و وظیفه اصلی آن ها، تبدیل تایخ هجری شمسی به میلادی و یا برعکس می باشد. سه پارمتر اول این توابع حتما باید وارد شوند، اما پارامتر چهارم در آن ها اختیاری است. اگر بخواهیم تاریخ میلادی را به شمسی تبدیل کنیم باید از تابع gregorian_to_jalali استفاده کنیم. تاریخی که در این تابع وارد می کنیم، حتماً باید میلادی باشد تا در خروجی به هجری شمسی تبدیل گردد. خروجی این تابع در حالت پیشفرض به صورت آرایه است، اما به وسیله پارامتر چهارم می توان خروجی را به عبارت (متن-رشته) تبدیل کرد.

همچنین اگر قصد داشته باشیم که تاریخ شمسی را به میلادی تبدیل کنیم، باید از تابع jalali_to_gregorian استفاده کنیم. تاریخی که در این تابع باید وارد شود حتما باید شمسی باشد تا در خروجی به صورت میلادی نمایش داده شود. پارامترهای این توابع مشابه هم هستند و از نظر کارکرد تفاوتی ندارند.

  • تابع تبدیل تاریخ میلادی به شمسی :

mixed gregorian_to_jalali( int $year , int $month , int $day [, string $mod = “” ] )

gregorian_to_jalali($g_y,$g_m,$g_d,$mod);
  • تابع تبدیل تاریخ  شمسی به میلادی

    :

([ “”=mixed jalali_to_gregorian( int $year , int $month , int $day [, string $mod

jalali_to_gregorian($j_y,$j_m,$j_d,$mod);

پارامترهای تابع gregorian_to_jalali عبارتند از :

  • g_y$ : پارامتر اول ، سال میلادی یا شمسی ( کامل ۴ رقمی )
  • g_m$ : پارامتر دوم ، ماه میلادی ( ۱۲- ۱ )
  • g_d$ : پارامتر سوم ، روز میلادی ( ۳۱ – ۱ )
  • mod$ : پارامتر چهارم ، یک پارامتر اختیاری است. تا زمانی که این پارامتر را وارد نکنید یا خالی بگذارید، خروجی تابع به صورت یک آرایه از سال و ماه و روز هجری شمسی خواهد بود . اما اگر هر مقدار دلخواهی را برای این پارامتر وارد نمایید، نوع خروجی به یک عبارت (متن-رشته) تغییر خواهد کرد که ترکیبی از سال و ماه و روز است و در بین سال و ماه و روز، همان کاراکتری که در این پارامتر وارد نموده بودید، به عنوان جدا کننده قرار می گیرد. به مثال توجّه بفرمایید:
include jdf.php;

gregorian_to_jalali(2011,2,11);// خروجی: array(1389,11,22);

gregorian_to_jalali(2011,2,11,' / ');// خروجی: ۱۳۸۹ / ۱۱ / ۲۲

پارامترهای تابع jalali_to_gregorian عبارتند از :

  • j_y$ : پارامتر اول ، سال هجری شمسی ( کامل ۴ رقمی )
  • j_m$ : پارامتر دوم ، ماه هجری شمسی ( ۱۲- ۱ )
  • j_d$ : پارامتر سوم ، روز هجری شمسی ( ۳۱ – ۱ )
  • mod$ : پارامتر چهارم ، یک پارامتر اختیاری است. تا زمانی که این پارامتر را وارد نکنید یا خالی بگذارید، خروجی تابع به صورت یک آرایه از سال و ماه و روز میلادی خواهد بود . اما اگر هر مقدار دلخواهی را برای این پارامتر وارد نمایید، نوع خروجی به یک عبارت (متن-رشته) تغییر خواهد کرد که ترکیبی از سال و ماه و روز است و در بین سال و ماه و روز، همان کاراکتری که در این پارامتر وارد نموده بودید، به عنوان جدا کننده قرار می گیرد. به مثال توجّه بفرمایید:
include jdf.php;

jalali_to_gregorian(1389,11,22);// خروجی: array(2011,2,11);

jalali_to_gregorian(1389,11,22,' - ');// خروجی: ۲۰۱۱ - ۲ - ۱۱
نکته :

صفر قبل از اعداد ورودی را حذف کنید: مثلا ۰۲ را به ۲ تبدیل نموده، سپس به آرگومان ها وارد کنید.

منبع : سایت سون لرن

دسته :
برچسب ها :


تاریخ انتشار : ۱۸ مهر ۱۳۹۸