لینک غیر مستقیم برای فایل ها در PHP - بخش اول

تقویم شمسی در PHP

در این آموزش قصد داریم تا ضمن آشنایی با کتابخانه فارسی jdf، نحوه ی تبدیل تاریخ میلادی به تاریخ هجری شمسی را به کمک این کتابخانه یاد بگیریم و همچنین نحوه ی تنظیم “موقعیت زمانی” برای نمایش صحیح زمان  در PHP را آموزش ببینیم تا بتوانیم ساعت محلی “ایران” را به راحتی و بدون محاسبه اختلاف زمانی با GMT بدست آوریم.

تاریخ شمسی:

برای اینکار باید از کتابخانه jdf استفاده کنیم. این کتابخانه حاوی توابع بسیار مفید برای تبدیل تاریخ میلادی به شمسی و بالعکس می باشد. برای دریافت فایل این کتابخانه بصورت رایگان، می توانید به وب سایت سازنده ی آن به آدرس http://jdf.scr.ir مراجعه کنید. به همراه فایل کتابخانه jdf.php راهنمای توابع و نحوه ی استفاده از آنها به همراه مثال های کاربردی بیان شده است. با داشتن فایل jdf.php  و فراخوانی آن در برنامه های خود، می توانید از تاریخ شمسی به جای تاریخ میلادی استفاده کنید. به عنوان مثال فرض کنید بخواهیم تاریخ کنونی را بصورت “امروز جمعه ۲۰ تیر ۱۳۹۳” نمایش دهیم. برای بدست آوردن زمان تابعی به نام jdate داریم که معادل تابع date در php می باشد، با این تفاوت که خروجی آن تاریخ شمسی است. به نمونه کد زیر دقت کنید:


<?php
include_once('jdf.php');
$out=jdate('l j F Y');
echo "امروز".$out;
?>

خروجی این کد بصورت زیر خواهد بود:

امروز جمعه ۲۰ تیر ۱۳۹۳

موقعیت زمانی ایران:

همانطور که می دانیم اختلاف زمانی ساعت ایران نسبت به GMT برابر با ۳:۳۰+ است. به این معنا که اگر به ساعت گرینویچ که مبنای زمانی است، مقدار ۳:۳۰ اضافه کنیم، ساعت محلی ایران به دست می آید. مشکل دیگر این است که برخلاف آنچه که به نظر می رسد، تابع time بطور مستقیم برای بدست آوردن  زمان استفاده نمی شود. در واقع خروجی تابع time یک عدد صحیح بزرگ است که تعداد ثانیه های گذشته از تاریخ آغاز فعالیت یونیکس(یکم ژانویه ۱۹۷۰) را برمی گرداند. این عدد تحت عنوان timestamp شناخته می شود. برای ساخت تاریخ می توانیم از این عدد کمک بگیریم. به بیان ساده تر، برای بدست آوردن زمان نیز باید از تابع date کمک بگیریم. حالا اگر بخواهیم زمان را ازاین تابع بدست بیاوریم، کافیست که ساعت، دقیقه و ثانیه را به کمک “قالب بندی” مناسب از این تابع استخراج کنیم.  معمولا از قالب “h:i:s” برای بدست آوردن ساعت استفاده می شود. در این قالب بندی h بیانگر ساعت، i برای نمایش دقیقه و s برای ثانیه بکار رفته است:


date("h:i:s");

خروجی تابع date با این قالب بندی بصورت زیر خواهد بود:


۵:۰۹:۳۳

حالا برای اینکه از نمایش صحیح زمان و در نظر گرفتن اختلاف زمانی ایران اطمینان حاصل کنیم، تنظیمات پیشفرض موقعیت زمانی را به موقعیت زمانی “ایران” تغییر می دهیم:


<?php
date_default_timezone_set("Iran");
echo date("h:i:s");
?>

خروجی این کد بصورت زیر خواهد بود:


۰۵:۱۴:۲۲

حالا اگر بخواهیم که اعداد نشان دهنده زمان نیز اعداد فارسی(غیر لاتین) باشند و در تمام سیستم ها صحیح نمایش داده شوند، می توانیم از تابع jdate که در کتابخانه jdf وجود دارد استفاده کنیم:


<?php
date_default_timezone_set("Iran");
include_once('../date/jdf.php');
echo jdate("h:i:s");
?>

خروجی این کد بصورت زیر خواهد بود:


۰۵:۱۴:۲۲

موفق و پیروز باشید…

در این آموزش قصد داریم تا ضمن آشنایی با کتابخانه فارسی jdf، نحوه ی تبدیل تاریخ میلادی به تاریخ هجری شمسی را به کمک این کتابخانه یاد بگیریم و همچنین نحوه ی تنظیم “موقعیت زمانی” برای نمایش صحیح زمان  در PHP را آموزش ببینیم تا بتوانیم ساعت محلی “ایران” را به راحتی و بدون محاسبه …

بررسی کلی

امتیاز کاربر: 4.7 ( 2 رای)
0

۳ دیدگاه

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

    • معمولا کتابخانه های شمسیاین امکان رو ندارن که بشه کل روزهای ماه جاری رو نشون داد.
      برای حل این مشکل باید خودتون دست به کار بشید و کدی بنویسید که این کار رو انجام بده.
      روال کار اینطوریه که اول تاریخ میلادی امروز رو به شمسی تبدیل می کنید و بعد در حالت شمسی عدد روز رو به ۱ تغییر میدین. اینطوری اول ماه رو پیدا میکنین. برای انتهای ماه یه درد سر وجود داره و اونم یکسان نبودن طول ماه هاست… شش ماه اول سال ۳۱ روزه اند و ۵ ماه بعد ۳۰ روزه… اسفند هم در سال های کبیسه ۳۰ روزه و در باقی سال ها ۲۹ روزه است.
      اگر واقعا این قابلیت رو نیاز دارید پیشنهاد میکنم از کتابخانه opilo/farsi استفاده کنید. این کتابخانه طول ماه رو بصورت خودکار محاسبه میکنه.

  2. فوق العاده بود
    فقط یه مشکل دارم اونم اینه که ساعت رو به pm میده اگه بشه درستش کنید فوق العاده ترم میشه

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme