کار با تاریخ شمسی با استفاده تابع ()jdate

یکی از دردسرهای همیشگی مدیران وبلاگ ها و سایت های فارسی زبان، مشکل نمایش تاریخ شمسی در صفحاتشان است، البته این مشکل برای سایت ها نمود بیشتری دارد چرا که وبلاگ ها معمولا از طریق سرویس دهنده خود می توانند تاریخ مطالب و محتوا را به بازدیدکنندگان به راحتی نشان دهند، اما در سایت ها وضع کمی فرق می کند، چرا که تاریخ قریب به اتفاق سرورها به میلادی است و از طرفی منطقه زمانی نیز در بیشتر سرورها بر روی GMT قرار دارد، در حالی که کشور ما ایران، به صورت استاندارد در منطقه زمانی 3:30+ GMT (و با تغییر ساعت در منطقه زمانی 4:30+ GMT) قرار گرفته است؛ در این مطلب می خواهیم به کمک برنامه مبدّل تاریخ هجری شمسی (jdf) که توسط برنامه نویسان ایرانی و به PHP نوشته و توسعه داده شده است، روش تبدیل تاریخ میلادی به شمسی را آموزش دهیم و مشکل منطقه زمانی را نیز حل کنیم. ابتدا فایل jdf را دانلود کنید تا به ادامه بحث بپردازیم.

 

تابع Jdate

این تابع همانطور که گفته شد توسط برنامه نویسان ایرانی و به PHP نوشته و توسعه داده شده است و دارای 5 پارامتر که فقط پارامتر اوّل آن الزامی است ، بقیه ی پارامترها اختیاری اند و در صورت وارد نشدن یا خالی ''گذاشتن آن ها ، مقدار پیشفرض برایشان وارد می شود.
این تابع مشابه تابع date است و تقریباً عملکردی مانند آن دارد ، امّا بر اساس تاریخ هجری شمسی عمل می کند. وظیفه ی این تابع ، ایجاد قالب های دلخواهی از تاریخ و عناصر زمان می باشد که با قرار دادن چیدمان خاصی از کاراکترها در پارامتر اوّل آن ، قالب خروجی زمان را تعیین می نماییم.

jdate($format, $timestamp, $none, $time_zone, $tr_num );

 

در جدول زیر کاربرد پارامترهای این تابع آمده است :

وجود مقدار پیشفرض توضیحات پارامترها
الزامی '' پارامتر اوّل ، که با قرار دادن یک یا چند کاراکتر ( از جدول کاراکترهای پارامتر اوّل تابع jdate ) در آن ، قالب دلخواهی از زمان را در خروجی تابع دریافت خواهیم نمود. مثلاً کاراکتر 'f' کوچک ، برای نمایش نام فصل و کاراکتر 'F' بزرگ ، برای نمایش نام ماه به حروف است. حتّی می توان با کنار هم گذاشتن چند کاراکتر ، یک خروجی مرکّب ساخت. مثلاً 'H:i:s' یک خروجی مرکّب از ساعت و دقیقه و ثانیه را به ما خواهد داد. مثل 21:16:53 و اگر می خواهید یک کاراکتر را به صورت خام خارج کنید و تبدیل نشود ، فقط کافیست قبل از آن \ بگذارید. مثلاً 'H:\i:s' به صورت 21:i:53 خارج خواهد شد. دقّت داشته باشید که بزرگی و کوچکی حروف ، می تواند خروجی را تغییر دهد ، پس مواظب باشید ، کاراکترهای بزرگ و کوچک را اشتباهی وارد نکنید. $format
اختیاری time() = زمان فعلی پارامتر دوم ، که اختیاری بوده و مقدار ورودی آن ، برچسب زمان است. اگر برچسب زمان خاصی را در این پارامتر قرار دهیم ، خروجی تابع کاملاً مطابق با همان زمان خاص خواهد بود ، انگار که الآن دقیقاً همان زمانی است که آن برچسب زمانی را گرفته ایم. و امّا ، اگر این پارامتر را وارد نکنیم یا خالی ''بگذاریم ، برچسب زمان فعلی در آن وارد خواهد شد و تمامی اطّلاعات خروجی ، مربوط به همین الآن است که مقدار پیشفرض ، برابر است با خروجی تابع time در همین حالا. $timestamp
اختیاری '' پارامتر سوم ، فعلاً در این پارامتر ، چیزی وارد نکنید. در نسخه های بعدی فعّال خواهد شد. $none
اختیاری Asia/Tehran پارامتر چهارم ، برای تغییر منطقه ی زمانی است. معمولاً زمان سرور سایت ها به وقت گرینویچ تنظیم شده است. امّا ما به زمانی نیاز داریم که به وقت تهران ، پایتخت جمهوری اسلامی ایران ، تنظیم شده باشد. شاید هم بخواهیم منطقه ی زمانی دیگری را تعیین کنیم. با این پارامتر ، به راحتی می توانید منطقه ی زمانی مورد نظرتان را در خروجی تابع ، اعمال نمایید. مقدار پیشفرض این پارامتر ، 'Asia/Tehran' یا 'Iran' وارد شده و اگر آن را خالی ''بگذارید یا وارد نکنید ، خروجی تابع به وقت تهران است و اختلاف زمانی ، به صورت خودکار در خروجی اعمال می گردد. امّا اگر قصد تغییر آن را دارید ، فهرست مناطق زمانی را می توانید در نشانی:
http://php.net/manual/en/timezones.php ، مشاهده نموده و منطقه ی مورد نظر خود را در این پارامتر ، وارد کنید. درضمن ، برای تنظیم به وقت گرینویچ ، می توانید از 'GMT' استفاده نمایید. و اگر مایلید تنظیمات پیشفرض سرور در مورد منطقه ی زمانی اعمال گردد ، 'local' را (با حروف کوچک) در این پارامتر وارد کنید ، البتّه ممکن است سرور سایت با ساعت کشور شما تنظیم نشده باشد.
$time_zone
اختیاری fa ارامتر پنجم ، تنظیم کننده ی زبان اعداد خروجی می باشد و حالت پیشفرض آن 'fa' است ، یعنی اگر آن را وارد نکرده یا خالی بگذاریم ، اعداد خروجی از تابع ، اعداد فارسی خواهند بود. اعداد فارسی برای نمایش در صفحات سایت ، بسیار مناسب و زیبا هستند. امّا همیشه نمی توان از اعداد فارسی استفاده نمود. در مواقعی که قصد دارید محاسباتی بر روی خروجی تابع انجام دهید ، مثلاً آن ها را در عدد دیگری ضرب کنید یا با هم جمع ببندید یا … ، حتماً باید اعداد را به صورت انگلیسی نوشته باشید تا بتوان از طریق توابع php بر روی آن ها عملیات ریاضی انجام داد. برای این که از این تابع ، اعداد به صورت انگلیسی خارج شوند ، فقط کافیست این پارامتر را برابر با 'en' قرار دهید. توجّه داشته باشید که بزرگی و کوچکی حروف ، مهم است و در این پارامتر ، حتماً باید 'en' یا 'fa' به حروف کوچک انگلیسی وارد گردند. $tr_num

 

اما پارامتر اول این تابع کاراکترهایی را قبول می کند که لیست آنها در جدول زیر آمده است :

 

مثال 2 مثال 1 دامنه کاربرد کاراکتر
ب.ظ ق.ظ ق.ظ | ب.ظ نمایش اوقات روز به صورت خلاصه
از ساعت ( 00:00 یا 24:00 ) یا 12:00 شب تـــا 11:59 ظهر ، به صورت "ق.ظ"
و از ساعت 12:00 ظهر تـــا 23:59 یا 11:59 شب ، به صورت "ب.ظ" خواهد بود.
a
4 1 1 – 4 شماره ی فصل ( ربع ) از سال
در بهار : "1" و در تابستان : "2" و در پاییز : "3" و در زمستان : "4" خواهد بود.
b
1389/11/22 ،09:46:31 +03:30 1390/4/4 ،13:08:26 +04:30 : طبق نمونه یک نمونه قالب مرکّب به صورت Y/n/j ،H:i:s P
برای مثال: "1389/11/22 ,09:46:31 +03:30"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.
c
23 9 01 – 31 شماره ی روز از ماه (برج) ، به صورت 2 رقمی
از "01" تا "29" یا "30" یا "31"
مثلاً در یکم ، "01" و در بیست و دوم ، "22" است.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.
d
Asia/Tehran Greenwich مناطق زمانی نمایش منطقه ی زمانی که برای اعمال اختلاف ساعت جهانی ، تنظیم شده است.
مثلاً برای جمهوری اسلامی ایران ، "Asia/Tehran" ( یا "Iran" ) است.
e
زمستان تابستان بهار تا زمستان نام فصل از سال به حروف فارسی
"بهار" یا "تابستان" یا "پاییز" یا "زمستان"
f
12 7 1 – 12 نمایش ساعت در روز ، 12 ساعته ، 1 یا 2 رقمی
از "1" تا "12"
مثلاً برای ساعت 7 صبح و 7 عصر ، به صورت "7" است.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.
g
12 07 01 – 12 نمایش ساعت در روز ، 12 ساعته ، 2 رقمی
از "01" تا "12"
مثلاً برای ساعت 7 صبح و 7 عصر ، به صورت "07" است.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.
h
21 17 00 – 59 نمایش دقیقه در ساعت ، 2 رقمی
از "00" تا "59"
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.
i
23 2 1 – 31 شماره ی روز از ماه (برج) ، به صورت 1 یا 2 رقمی
از "1" تا "29" یا "30" یا "31"
مثلاً در یکم ، "1" و در بیست و دوم ، "22" است.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.
j
16 76.2 0 – 100 نمایش درصد باقی مانده از سال ، با امکان یک رقم اعشار
از "100" تا "0"
مثلاً در اوّل سال ، "100" و در آخر سال ، "0" است.
مثل : "51.6" یا "27" یا "16.3" یا "78.2" یا "91" و …
k
چهار شنبه شنبه شنبه تا جمعه نام فارسی روز در هفته ، به صورت کامل
"شنبه" یا "یکشنبه" یا "دوشنبه" یا "سه شنبه" یا "چهارشنبه" یا "پنجشنبه" یا "جمعه"
l
10 03 01 – 12 شماره ی ماه ( برج ) از سال ، به صورت 2 رقمی
از "01" برای فروردین ، تا "12" برای اسفند
مثلاً در تیر ، "04" و در بهمن ، "10" است.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.
m
10 3 1 – 12 شماره ی ماه ( برج ) از سال ، به صورت 1 یا 2 رقمی
از "1" برای فروردین ، تا "12" برای اسفند
مثلاً در تیر ، "4" و در بهمن ، "10" است.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.
n
1389 1391 شماره ی سال عدد سال هفته ای ، 4 رقمی
شماره ی سال را به صورت 4 رقمی نشان می دهد.
امّا در هفته هایی که قسمتی از آن در سال قبل و بقیه ی آن در سال بعد است ، در تمام طول
آن هفته ، شماره ی سالی را نشان خواهد داد که قسمت بیشتر هفته در آن سال قرار دارد.
o
دلو جوزا حمل تا حوت نمایش نام باستانی هر یک از برج های سال ، بر اساس صورت های فلکی
در فروردین: "حمل" _ در اردیبهشت: "ثور" _ در خرداد: "جوزا"
در تیر: "سرطان" _ در مرداد: "اسد" _ در شهریور: "سنبله"
در مهر: "میزان" _ در آبان: "عقرب" _ در آذر: "قوس"
در دی: "جدی" _ در بهمن: "دلو" _ در اسفند: "حوت"
p
پلنگ گاو موش تا خوک نمایش نام حیوانی سال ها
طبق یک دوره ی 12 ساله که دائماً تکرار می شود ، از راست به چپ ، عبارت اند از:
"موش" _ "گاو" _ "پلنگ" _ "خرگوش" _ "نهنگ" _ "مار"
"اسب" _ "گوسفند" _ "میمون" _ "مرغ" _ "سگ" _ "خوک"
q
09:46:31 +0330جمعه، 22 بهمن 1389 13:08:26 +0430شنبه، 4 تیر 1390 : طبق نمونه یک نمونه قالب مرکّب به صورت H:i:s O Y F j ،l
برای مثال: "9:46:31 +0330جمعه, 22 بهمن 1389"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.
r
17 09 00 – 59 نمایش ثانیه در دقیقه ، 2 رقمی
از "00" تا "59"
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.
s
30 31 31 | 30 | 29 نمایش تعداد روز های آن ماه ( برج )
"29" یا "30" یا "31"
برای برج های 1 تا 6 ، "31" و برای برج های 7 تا 11 ، "30" می باشد.
برای برج 12 ( اسفند ) سال های کبیسه ، "30" و سال های غیر کبیسه ، "29" است.
t
739031 000000 : طبق نمونه نمایش میکرو ثانیه ، یک عدد 6 رقمی
مثلاً: "000000" یا "739031" یا "004126" و …
ممکن است در بعضی سرورها فعّال نباشد و همیشه به صورت "000000" نمایش داده شود.
u
هشتاد و نه نود و یک از ‍ تا نود و نه نمایش سال خلاصه شده به حروف فارسی
مثلاً: "هشتاد و نه" برای 1389 و "نود" برای 1390 و "چهار" برای 1404 و …
v
3 0 0 – 6 عدد روز در هفته ، 0 تا 6
مثلاً: "0" برای شنبه و "1" برای یکشنبه و "6" برای جمعه
آغاز هفته از روز شنبه حساب می شود.
w
منتظر باشید منتظر باشید به زودی در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.
x
89 91 00 – 99 عدد سال ، به صورت خلاصه ی 2 رقمی
از "00" تا "99"
مثلاً: "89" برای 1389 و "90" برای 1390 و "04" برای 1404 و …
y
304 41 0 – (364|365) نمایش تعداد روزهای کامل سپری شده از سال
از "0" تا "364" یا "365"
مثلاً: "0" برای یکم فروردین و "19" برای بیستم فروردین و "50" برای بیستم اردیبهشت و …
z
بعد از ظهر قبل از ظهر : طبق نمونه نمایش اوقات روز به صورت کامل
از ساعت ( 00:00 یا 24:00 ) یا 12:00 شب تـــا 11:59 ظهر ، به صورت "قبل از ظهر"
و از ساعت 12:00 ظهر تـــا 23:59 یا 11:59 شب ، به صورت "بعد از ظهر" خواهد بود.
A
710 098 000 – 999 زمان اینترنتی به وقت جهانی ، یک عدد 3 رقمی
از "000" تا "999"
بر حسب 1.44 دقیقه ی گذشته از ساعت 23:00 به وقت گرینویچ
B
15 14 …|15|14|… شماره ی قرن (سده ی) هجری شمسی
مثلاً از سال 1301 تا 1400 ، قرن "14" می باشد.
و از سال 1401 تا 1500 ، جزء قرن "15" ام هجری شمسی خواهد بود.
C
چ ش ش تا ج حرف اوّل نام روز در هفته
مثلاً: "ش" برای شنبه و "د" برای دوشنبه و …
"ش" یا "ی" یا "د" یا "س" یا "چ" یا "پ" یا "ج"
D
منتظر باشید منتظر باشید به زودی در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.
E
دی خرداد فروردین تا اسفند نام فارسی ماه ( برج ) از سال به صورت کامل
"فروردین" _ "اردیبهشت" _ "خرداد" _ "تیر" _ "مرداد" _ "شهریور"
"مهر" _ "آبان" _ "آذر" _ "دی" _ "بهمن" _ "اسفند"
F
19 7 0 – 23 نمایش ساعت در روز ، 24 ساعته ، 1 یا 2 رقمی
از "0" تا "23"
مثلاً: "7" برای ساعت 7 صبح و "19" برای ساعت 7 عصر می باشد.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.
G
19 07 00 – 23 نمایش ساعت در روز ، 24 ساعته ، 2 رقمی
از "00" تا "23"
مثلاً: "07" برای ساعت 7 صبح و "19" برای ساعت 7 عصر می باشد.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.
H
1 0 0 | 1 نشانگر طولانی تر بودن روز و جلو کشیده شدن ساعت
طبق معمول ، در نیمه ی اوّل هر سال، ساعت رسمی کشور به جلو و در پایان نیمه ی اوّل
سال ، به عقب باز می گردد که در جمهوری اسلامی ایران ، مقدار تغییر ، 1 ساعت است.
اگر ساعت توسّط نرم افزار به صورت خودکار به جلو کشیده شده باشد ، مقدار این کاراکتر،
"1" خواهد بود وگرنه ، "0" است که در سرورهایی با تنظیمات استاندارد ، انجام می شود.
جلو کشیدن ، از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال انجام می شود.
I
بیست و نه دو یک تا سی و یک نمایش شماره ی روز از ماه (برج) به حروف
از "یک" تا "سی و یک" ( یا "سی" یا "بیست و نه" )
J
83.3 14 100 – 0 نمایش درصد سپری شده از سال ، با امکان یک رقم اعشار
از "0" تا "100"
مثلاً در اوّل سال ، "0" و در آخر سال ، "100" است.
مثل : "48.4" یا "73" یا "83.7" یا "11.8" یا "9" و …
K
0 1 0 | 1 نشانگر کبیسه بودن سال
"1" برای سال کبیسه و "0" برای سال غیر کبیسه
اسفند سال های کبیسه ، 30 روزه است ، امّا اسفند سال های غیر کبیسه ، 29 روزه است.
معمولاً در دوره های 4 ساله ، 3 سال معمولی و 1 سال کبیسه است ، امّا این دائمی نیست.
L
دی خر فر تا اس‍ دو حرف اوّل نام ماه ( برج ) از سال
مثلاً: "ار" برای اردیبهشت و "دی" برای دی و …
"فر" _ "ار" _ "خر" _ "تی‍" _ "مر" _ "شه‍" _ "مه‍" _ "آب‍" _ "آذ" _ "دی" _ "به‍" _ "اس‍"
M
3 7 1 – 7 عدد روز در هفته ، 1 تا 7
مثلاً: "7" برای شنبه و "1" برای یکشنبه و "6" برای جمعه
آغاز هفته از روز شنبه حساب می شود.
N
+0330 +0430 -1200 ، +1400 نمایش اختلاف ساعت جهانی تنظیم شده ، بدون دو نقطه
مثلاً برای جمهوری اسلامی ایران ، "0330" برای مواقع عادی
و "0430" برای روزهایی که ساعت به جلو کشیده شده است.
( از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال )
O
+03:30 +04:30 -12:00 ، +14:00 نمایش اختلاف ساعت جهانی تنظیم شده ، با دو نقطه
مثلاً برای جمهوری اسلامی ایران ، "03:30" برای مواقع عادی
و "04:30" برای روزهایی که ساعت به جلو کشیده می شود.
( از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال )
P
61 324 (365|364) – 0 نمایش تعداد روزهای کامل باقی مانده از سال
از "364" یا "365" تا "0"
مثلاً: "0" برای روز آخر سال
Q
منتظر باشید منتظر باشید به زودی در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.
R
ام ام ام نمایش واژه ی "ام" S
IRST IRDT مخفف مناطق نمایش مخفف منطقه ی زمانی که برای اعمال اختلاف ساعت جهانی ، تنظیم شده.
مثلاً برای جمهوری اسلامی ایران ، "IRST" برای مواقع عادی
و "IRDT" برای روزهایی که ساعت به جلو کشیده می شود.
( از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال )
T
1295436467 1243955346 : طبق نمونه برچسب زمان یونیکس ، Unix timestamp
تعداد ثانیه هایی که از روز 1/1/1970 میلادی ، دقیقاً ساعت 00:00:00 به وقت گرینویچ
گذشته است. عدد این برچسب بسیار مفید ، قابل تبدیل به هر قالبی از زمان می باشد
U
هزار و سیصد و هشتاد و نه هزار و سیصد و نود و یک : طبق نمونه نمایش سال کامل به حروف فارسی
مثلاً: "هزار و سیصد و هشتاد و نه" برای 1389
و "هزار و سیصد و نود" برای 1390
و "هزار و چهارصد و چهار" برای 1404 و …
V
43 11 00 – (52|53) شماره ی این هفته در سال ، 2 رقمی
از "01" تا "52" یا "53"
آغاز هر هفته از روز شنبه حساب می شود.
وقتی قسمتی از یک هفته در سال قبل و بقیه ی آن در سال بعد باشد، اگر بخش بیشتر هفته
در سال قبل باشد ، در تمام طول آن هفته ، شماره ی آن در سال قبل که "52" یا "53" است،
نمایش داده می شود. امّا اگر بخش بیشتر هفته در سال بعد باشد، در تمام طول همان هفته،
شماره ی آن در سال بعد که "01" است ، نمایش داده می شود . به عبارت دیگر ، آن هفته به
به صورت کامل ، جزء سالی به حساب خواهد آمد که قسمت بزرگ تر هفته در آن سال باشد .
W
منتظر باشید منتظر باشید به زودی در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.
X
1389 1391 : طبق نمونه عدد سال ، به صورت کامل 4 رقمی
مثلاً: "1389" و "1390" و "1404" و …
Y
12600 16200 -43200 ، 50400 نمایش اختلاف ساعت جهانی تنظیم شده ، بر حسب ثانیه
مثلاً برای جمهوری اسلامی ایران ، "12600" برای مواقع عادی
و "16200" برای روزهایی که ساعت به جلو کشیده می شود.
( از ساعت 24.00 ،یکم فروردین تا سی ام شهریور هر سال )
Z

 

استفاده از تابع ()jdate

ابتدا برای درک بهتر مطالب ، فقط از پارامتر اوّل این تابع استفاده می کنیم و شیوه ی گرفتن قالب های مختلفی از خروجی را یاد می گیریم. به مثال های زیر هم توجّه کنید که نکات خاصی را بیان می کنند. این ها فقط مثال هستند ، می توانید از هر کاراکتر دیگری هم به جای آن ها استفاده کنید.(نکته : اعداد 46-4 را که در خروجی (قسمت سیاه رنگ)مشاهده می کنید فقط برای راحتی تشخیص خروجی است و جز خروجی کد اصلی نیستند).

   1:<?php
   2:    include './jdf.php';
   3:    
   4:    echo jdate('F')                     .'<br/>';
   5:    echo jdate('f')                     .'<br/>';
   6:    echo jdate('f')                     .'<br/>';
   7:    echo jdate('H i s')                 .'<br/>';
   8:    echo jdate('H:i:s')                 .'<br/>';
   9:    echo jdate('Y/n/j')                 .'<br/>';
  10:    echo jdate('Y F j')                 .'<br/>';
  11:    echo jdate('V F J')                 .'<br/>';
  12:    echo jdate('H:i:s')                 .'<br/>';
  13:    echo jdate('H:\i:s')                .'<br/>';
  14:    echo jdate('H : \i\r\a\n')          .'<br/>';
  15:    echo jdate('\HH')                   .'<br/>';
  16:    echo jdate('H\H')                   .'<br/>';
  17:    echo jdate('H\ H')                  .'<br/>';
  18:    echo jdate('\HH\H')                 .'<br/>';
  19:    echo jdate('\H\o\u : H _ \M\i\n : i _ \S\e\c : s').'<br/>';
  20:    echo jdate(" \" H \" ")             .'<br/>';
  21:    echo jdate(' \' H \' ')             .'<br/>';
  22:    echo jdate(' " H " ')               .'<br/>';
  23:    echo jdate(" ' H ' ")               .'<br/>';
  24:    echo jdate('\\\\')                  .'<br/>';
  25:    echo jdate('\\\\H')                 .'<br/>';
  26:    echo jdate('\\\\\H')                .'<br/>';
  27:    echo jdate('F')                     .'<br/>';
  28:    echo jdate('Fماه')                  .'<br/>';
  29:    echo jdate('F ماه')                 .'<br/>';
  30:    echo jdate('ماه F')                 .'<br/>';
  31:    echo jdate('J')                     .'<br/>';
  32:    echo jdate('Jم')                    .'<br/>';
  33:    echo jdate('Jمین')                  .'<br/>';
  34:    echo jdate('امروز : Jم F است')     .'<br/>';
  35:    echo jdate('امروز l است')          .'<br/>';
  36:    echo jdate('c')                     .'<br/>';
  37:    echo jdate('r')                     .'<br/>';
  38:    echo jdate('H:i:s O ,l, j F Y')     .'<br/>';
  39:    echo jdate('H:i:s P | l, j / F / Y').'<br/>';
  40:    echo jdate('H:i:s P | l, j F Y')    .'<br/>';
  41:    echo jdate('l, J / F / V')          .'<br/>';
  42:    echo jdate('l, J F V')              .'<br/>';
  43:    echo jdate('H:i:s P ,Y/n/j')        .'<br/>';
  44:    echo jdate('H:i:s ,Y/n/j')          .'<br/>';
  45:    echo jdate('H:i:s e ,Y/n/j')        .'<br/>';
  46:    echo jdate('H:i:s T ,Y/n/j')        .'<br/>';
  47:?>
4   آذر
5   پاییز
6   پاییز
7   ۲۰ ۰۹ ۳۳
8   ۲۰:۰۹:۳۳
9   ۱۳۹۴/۹/۱۰
10   ۱۳۹۴ آذر ۱۰
11   هزار و سیصد و نود و چهار آذر ده
12   ۲۰:۰۹:۳۳
13  ۲۰:i:۳۳
14  ۲۰ : iran
15  H۲۰
16  ۲۰H
17  ۲۰ ۲۰
18  H۲۰H
19  Hou : ۲۰ _ Min : ۰۹ _ Sec : ۳۳
20  " ۲۰ "
21  ' ۲۰ '
22  " ۲۰ "
23  ' ۲۰ '
24  \
25  \۲۰
26  \H
27  آذر
28  آذرماه
29  آذر ماه
30  ماه آذر
31  ده
32  دهم
33  دهمین
34  امروز : دهم آذر است
35  امروز سه شنبه است
36  ۱۳۹۴/۹/۱۰ ،۲۰:۰۹:۳۳ +۰۳:۳۰
37  ۲۰:۰۹:۳۳ +۰۳۳۰ سه شنبه، ۱۰ آذر ۱۳۹۴
38  ۲۰:۰۹:۳۳ +۰۳۳۰ ,سه شنبه, ۱۰ آذر ۱۳۹۴
39  ۲۰:۰۹:۳۳ +۰۳:۳۰ | سه شنبه, ۱۰ / آذر / ۱۳۹۴
40  ۲۰:۰۹:۳۳ +۰۳:۳۰ | سه شنبه, ۱۰ آذر ۱۳۹۴
41  سه شنبه, ده / آذر / هزار و سیصد و نود و چهار
42  سه شنبه, ده آذر هزار و سیصد و نود و چهار
43  ۲۰:۰۹:۳۳ +۰۳:۳۰ ,۱۳۹۴/۹/۱۰
44  ۲۰:۰۹:۳۳ ,۱۳۹۴/۹/۱۰
45  ۲۰:۰۹:۳۳ Asia/Tehran ,۱۳۹۴/۹/۱۰
46  ۲۰:۰۹:۳۳ IRST ,۱۳۹۴/۹/۱۰

خطوط 46-36 کد بالا را بین تگ <span dir=ltr></span> قرار دهید تا خروجی شکیلتری را مشاهده کنید.

 

برطرف کردن خطای زمان سرور

ممکن است زمان سرور شما چند دقیقه خطا داشته باشد. برای رفع این خطا چندین راه وجود دارد.

  • راه اوّل ، تنظیم دقیق زمان سرور است. امّا اگر سرور متعلّق به شما نیست و از یک هاست (فضای کرایه ای) استفاده می کنید ، باید از روش های دیگر استفاده نمایید.
  • راه دوم ، خنثی کردن خطا در پارامتر دوم تابع jdate است. فقط کافیست مقدار این خطا را به ثانیه حساب کرده و در پارامتر دوم اعمال نمایید. مثلاً اگر زمان سرور شما 2 دقیقه و 27 ثانیه جلو است ، باید آن را به همین مقدار ، عقب بکشید. ابتدا 2 دقیقه را در عدد 60 ضرب می کنیم تا به ثانیه تبدیل شود ، سپس عدد حاصل (120) را با 27 جمع می کنیم. آنگاه پارامتر دوم تابع jdate را به صورت
    jdate('H:i:s',time()-147);

    وارد می کنیم تا 147 ثانیه به عقب کشیده شود. برای عقب کشیدن از تفریق ( – ) و برای جلو کشیدن از جمع ( + ) استفاده می نماییم.

  • راه سوم ، از طریق فایل نرم افزار (jdf.php) است. ابتدا آن را به وسیله ی یک ویرایشگر حرفه ای باز کنید. ( هشدار: به دلیل UTF-8 بودن فایل ، هرگز آن را با نوت پد معمولی ویندوز ، ویرایش یا ذخیره نکنید. ) سپس در ابتدای تابع jdate ، مقدار $T_sec=0; را از صفر به مقدار مورد نظرتان بر حسب ثانیه تغییر دهید. اگر قصد عقب کشیدن زمان را دارید ، آن را به صورت یک عدد منفی وارد کنید ، مثلاً:
    $T_sec=-147;
  • راه چهارم ، خنثی کردن خطا در هنگام ذخیره یا نمایش زمان کنونی می باشد. که بهترین راه برای اصلاح خطای زمان سرور ، همین راه است. اگر قصد ذخیره ی برچسب زمان در دیتابیس را داشتید ، ابتدا خطای آن را با همان روش جمع یا تفریق ذکر شده ، خنثی کنید. و اگر قصد نمایش زمان کنونی را در صفحات سایت دارید ، خطا را در پارامتر دوم توابع jdate یا jstrftime ، خنثی نمایید. به این ترتیب ، در هنگام نمایش تاریخ های ذخیره شده در دیتابیس نیز ، خطای آن ها قبل از ذخیره کردن ، برطرف شده است.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر مطرح بفرمایید.