کی بهتر از خود مدرس میتونه بهت مشاوره بده؟🤔 ۳۵٪ تخفیف + یک جلسه رایگان با خود مدرس🔥
۰ ثانیه
۰ دقیقه
۰ ساعت
۹ دیدگاه نظر مهدی علامه
تبدیل تاریخ شمسی به میلادی php
تبدیل تاریخ شمسی به میلادی php

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

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

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

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

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

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

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

آموزش نصب Composer

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

در صفحه بعد که هدایت می‌شوید، روش‌های مختلفی برای نصب کامپوزر وجود دارد. در این بخش ساده‌ترین روش نصب این ابزار بررسی می‌شود. در این صفحه برای دریافت فایل نصبی کامپوزر بر روی عبارت 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);
 //جواب این دستور به صورت زیر است
 // [2015,12,25]
همچنین برای تبدیل تاریخ از شمسی به میلادی به صورت ساده، از دستور زیر استفاده کنید :
return Verta::getJalali(2015,12,25); 
 //جواب این دستور به صورت زیر است 
 // [1394,10,4]

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

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

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

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

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

این تابع‌ها دارای 4 پارامتر (آرگومان) بوده و وظیفه اصلی آن ها، تبدیل تایخ هجری شمسی به میلادی و یا برعکس می‌باشد. سه پارمتر اول این توابع حتما باید وارد شوند، اما پارامتر چهارم در آن‌ها اختیاری است. اگر بخواهیم تاریخ میلادی را به شمسی تبدیل کنیم باید از تابع 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$ : پارامتر اول ، سال میلادی یا شمسی ( کامل 4 رقمی )
  • g_m$ : پارامتر دوم ، ماه میلادی ( 12- 1 )
  • g_d$ : پارامتر سوم ، روز میلادی ( 31 - 1 )
  • mod$ : پارامتر چهارم ، یک پارامتر اختیاری است. تا زمانی که این پارامتر را وارد نکنید یا خالی بگذارید، خروجی تابع به صورت یک آرایه از سال و ماه و روز هجری شمسی خواهد بود . اما اگر هر مقدار دلخواهی را برای این پارامتر وارد نمایید، نوع خروجی به یک عبارت (متن-رشته) تغییر خواهد کرد که ترکیبی از سال و ماه و روز است و در بین سال و ماه و روز، همان کاراکتری که در این پارامتر وارد نموده بودید، به عنوان جدا کننده قرار می‌گیرد. به مثال توجّه بفرمایید:
include jdf.php;
gregorian_to_jalali(2011,2,11);//  array(1389,11,22);
gregorian_to_jalali(2011,2,11,' / ');//  1389 / 11 / 22
پارامترهای تابع jalali_to_gregorian عبارتند از :
  • j_y$ : پارامتر اول ، سال هجری شمسی ( کامل 4 رقمی )
  • j_m$ : پارامتر دوم ، ماه هجری شمسی ( 12- 1 )
  • j_d$ : پارامتر سوم ، روز هجری شمسی ( 31 - 1 )
  • mod$ : پارامتر چهارم ، یک پارامتر اختیاری است. تا زمانی که این پارامتر را وارد نکنید یا خالی بگذارید، خروجی تابع به صورت یک آرایه از سال و ماه و روز میلادی خواهد بود . اما اگر هر مقدار دلخواهی را برای این پارامتر وارد نمایید، نوع خروجی به یک عبارت (متن-رشته) تغییر خواهد کرد که ترکیبی از سال و ماه و روز است و در بین سال و ماه و روز، همان کاراکتری که در این پارامتر وارد نموده بودید، به عنوان جدا کننده قرار می‌گیرد. به مثال توجّه بفرمایید:
include jdf.php;
jalali_to_gregorian(1389,11,22);//  array(2011,2,11);
jalali_to_gregorian(1389,11,22,' - ');//  2011 - 2 - 11
صفر قبل از اعداد ورودی را حذف کنید: مثلا 02 را به 2 تبدیل نموده، سپس به آرگومان‌ها وارد کنید.
 
۹ دیدگاه
ما همه سوالات و دیدگاه‌ها رو می‌خونیم و پاسخ میدیم
۰۲ تیر ۱۴۰۱، ۱۸:۵۱

اسم تقویم یار و شنیدین؟ این وب سایت علاوه بر تقویم بودن اطلاعات مفیدی در خصوص فکس اینترنتی و ... به شما میده.

سعید آقایی ۲۶ شهریور ۱۴۰۰، ۰۶:۲۵

با سلام. میشه این رو روی CMS زنفرو استفاده کرد ؟ زنفرو یه سیستم انجمن ساز هستش. آیا میتونید این کار رو برام انجام بدید ؟

نازنین کریمی مقدم ۲۶ شهریور ۱۴۰۰، ۲۱:۰۲

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

Fekri Game ۰۴ مرداد ۱۴۰۰، ۰۹:۵۰

سلام، وقتتون بخیر باشه. یه سوالی داشتم با استفاده از چه زبانی میتونم افزونه نویسی در وردپرس انجام بدم ؟؟

نازنین کریمی مقدم ۰۴ مرداد ۱۴۰۰، ۱۰:۲۸

درود معمولا با php انجام میشه، ما قبلا یه دوره پلاگین نویسی داشتیم که نمیدونم هنوز هست یا برداشته شده، با سرچ در سایت احتمالا بتونید چند نمونه آموزش عملی هم پیدا کنید.

fatyma ۱۵ اردیبهشت ۱۳۹۹، ۱۰:۲۸

ممنون از اموزش خوبتون فقط یه سوال باید تو دیتابیس تایپ رکوردمون timestamp باشه؟

محمود ۱۹ اسفند ۱۳۹۸، ۱۷:۳۳

سلام. وقت بخیر و خداقوت. بنده یه افزونه دارم که میخوام تاریخش از میلادی به شمسی تبدیل بشه. میخواستم خواهش کنم اگه براتون مقدوره بفرمایید تا با چه هزینه ای این کار رو برام انجام میدید؟ متاسفانه بنده دانش کافی برای انجام این کار رو ندارم. بی نهایت سپاسگزار خواهم شد.

isfvisit ۱۰ خرداد ۱۳۹۸، ۲۲:۲۷

برنامه خوبی بود ممنون از اشتراک گزاری

مهدی علامه ۱۱ خرداد ۱۳۹۸، ۰۴:۵۶

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

  • تبدیل تاریخ شمسی به میلادی در PHP با استفاده از کتابخانه Verta
  • تبدیل تاریخ شمسی به میلادی در PHP با استفاده از کتابخانه Jdf
اشتراک گذاری مقاله در :