بسم الله الرّحمن الرّحیم
مبدّل تاریخ و زمان
jdf.scr.ir
وَسَخَّرَ لَكُمُ اللَّیْلَ وَالْنَّهَارَ وَالشَّمْسَ وَالْقَمَرَ وَالْنُّجُومُ مُسَخَّرَاتٌ بِأَمْرِهِ إِنَّ فِی ذَلِكَ لَآیَاتٍ لِّقَوْمٍ یَعْقِلُونَ | و شب و روز و خورشید و ماه را برای شما رام گردانید و ستارگان به فرمان او مسخّر شده اند مسلّماً در این [امور] برای مردمی که تعقّل می‏کنند نشانه هاست | سوره ی نحل ، آیه ی 12
آموزش تابع jdate

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

string jdate ( string $format [, int $timestamp = time() [, string $none = "" [, string $timezone = "Asia/Tehran" [, string $tr_num = "fa" ]]]] )

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

jdate() جدول شماره ی 2 _ پارامترهای تابع
date(?) الزام ؟ مقدار پیشفرض توضیحات پارامترها
+ الزامی '' قالب نمایشی اطلاعات خروجی $format
+ اختیاری time() = زمان فعلی timestamp برچسب زمانی دلخواه ورودی $timestamp
! اختیاری '' این پارامتر را فعلاً خالی بگذارید $none
! اختیاری Asia/Tehran منطقه ی زمانی جهت محاسبه ی اختلاف ساعت $time_zone
! اختیاری fa زبان اعداد خروجی ، فارسی یا انگلیسی $tr_num

پارامترهای تابع jdate

format$ : پارامتر اوّل ، که با قرار دادن یک یا چند کاراکتر ( از جدول کاراکترهای پارامتر اوّل تابع jdate ) در آن ، قالب دلخواهی از زمان را در خروجی تابع دریافت خواهیم نمود. مثلاً کاراکتر 'f' کوچک ، برای نمایش نام فصل و کاراکتر 'F' بزرگ ، برای نمایش نام ماه به حروف است. حتّی می توان با کنار هم گذاشتن چند کاراکتر ، یک خروجی مرکّب ساخت. مثلاً 'H:i:s' یک خروجی مرکّب از ساعت و دقیقه و ثانیه را به ما خواهد داد. مثل 21:16:53 و اگر می خواهید یک کاراکتر را به صورت خام خارج کنید و تبدیل نشود ، فقط کافیست قبل از آن \ بگذارید. مثلاً 'H:\i:s' به صورت 21:i:53 خارج خواهد شد. دقّت داشته باشید که بزرگی و کوچکی حروف ، می تواند خروجی را تغییر دهد ، پس مواظب باشید ، کاراکترهای بزرگ و کوچک را اشتباهی وارد نکنید.

timestamp$ : پارامتر دوم ، که اختیاری بوده و مقدار ورودی آن ، برچسب زمان است. اگر برچسب زمان خاصی را در این پارامتر قرار دهیم ، خروجی تابع کاملاً مطابق با همان زمان خاص خواهد بود ، انگار که الآن دقیقاً همان زمانی است که آن برچسب زمانی را گرفته ایم. و امّا ، اگر این پارامتر را وارد نکنیم یا خالی '' بگذاریم ، برچسب زمان فعلی در آن وارد خواهد شد و تمامی اطّلاعات خروجی ، مربوط به همین الآن است که مقدار پیشفرض ، برابر است با خروجی تابع time در همین حالا.

none$ : پارامتر سوم ، فعلاً در این پارامتر ، چیزی وارد نکنید. در نسخه های بعدی فعّال خواهد شد.

time_zone$ : پارامتر چهارم ، برای تغییر منطقه ی زمانی است. معمولاً زمان سرور سایت ها به وقت گرینویچ تنظیم شده است. امّا ما به زمانی نیاز داریم که به وقت تهران ، پایتخت جمهوری اسلامی ایران ، تنظیم شده باشد. شاید هم بخواهیم منطقه ی زمانی دیگری را تعیین کنیم. با این پارامتر ، به راحتی می توانید منطقه ی زمانی مورد نظرتان را در خروجی تابع ، اعمال نمایید. مقدار پیشفرض این پارامتر ، 'Asia/Tehran' یا 'Iran' وارد شده و اگر آن را خالی '' بگذارید یا وارد نکنید ، خروجی تابع به وقت تهران است و اختلاف زمانی ، به صورت خودکار در خروجی اعمال می گردد. امّا اگر قصد تغییر آن را دارید ، فهرست مناطق زمانی را می توانید در نشانی:
http://php.net/manual/en/timezones.php ، مشاهده نموده و منطقه ی مورد نظر خود را در این پارامتر ، وارد کنید. درضمن ، برای تنظیم به وقت گرینویچ ، می توانید از 'GMT' استفاده نمایید. و اگر مایلید تنظیمات پیشفرض سرور در مورد منطقه ی زمانی اعمال گردد ، 'local' را (با حروف کوچک) در این پارامتر وارد کنید ، البتّه ممکن است سرور سایت با ساعت کشور شما تنظیم نشده باشد.

tr_num$ : پارامتر پنجم ، تنظیم کننده ی زبان اعداد خروجی می باشد و حالت پیشفرض آن 'fa' است ، یعنی اگر آن را وارد نکرده یا خالی بگذاریم ، اعداد خروجی از تابع ، اعداد فارسی خواهند بود. اعداد فارسی برای نمایش در صفحات سایت ، بسیار مناسب و زیبا هستند. امّا همیشه نمی توان از اعداد فارسی استفاده نمود. در مواقعی که قصد دارید محاسباتی بر روی خروجی تابع انجام دهید ، مثلاً آن ها را در عدد دیگری ضرب کنید یا با هم جمع ببندید یا ... ، حتماً باید اعداد را به صورت انگلیسی نوشته باشید تا بتوان از طریق توابع php بر روی آن ها عملیات ریاضی انجام داد. برای این که از این تابع ، اعداد به صورت انگلیسی خارج شوند ، فقط کافیست این پارامتر را برابر با 'en' قرار دهید. توجّه داشته باشید که بزرگی و کوچکی حروف ، مهم است و در این پارامتر ، حتماً باید 'en' یا 'fa' به حروف کوچک انگلیسی وارد گردند.

^ jdate() جدول شماره ی 3 _کاراکترهای پارامتر اوّل تابع
date(?) مثال ۲ مثال ۱ دامنه jdate() ‍کاربرد کاراکتر در کاراکتر
- - - - کاراکترها با حروف کوچک کوچک
+ ب.ظ ق.ظ ق.ظ | ب.ظ اوقات روز - به صورت خلاصه a
! ۴ ۱ ۱ - ۴ شماره ی فصل (ربع) از سال b
+ ۱۳۸۹/۱۱/۲۲ ،۰۹:۴۶:۳۱ +۰۳:۳۰ ۱۳۹۰/۴/۴ ،۱۳:۰۸:۲۶ +۰۴:۳۰ : طبق نمونه Y/n/j ,H:i:s P :(ltr) ۱ قالب مرکّب c
+ ۲۳ ۹ ۰۱ - ۳۱ شماره ی روز از ماه - ۲ رقمی d
+ Asia/Tehran Greenwich مناطق زمانی منطقه ی زمانی تنظیم شده e
! زمستان تابستان بهار تا زمستان نام فصل با حروف فارسی f
+ ۱۲ ۷ ۱ - ۱۲ ساعت در روز -۱۲ساعته -۱یا۲رقمی g
+ ۱۲ ۰۷ ۰۱ - ۱۲ ساعت در روز - ۱۲ ساعته - ۲رقمی h
+ ۲۱ ۱۷ ۰۰ - ۵۹ دقیقه در ساعت - ۲ رقمی i
+ ۲۳ ۲ ۱ - ۳۱ شماره ی روز از ماه - ۱یا۲ رقمی j
! ۱۶ ۷۶.۲ ۰ - ۱۰۰ (**.?) در صد باقیمانده از سال k
+ چهار شنبه شنبه شنبه تا جمعه نام روز در هفته - کامل l
+ ۱۰ ۰۳ ۰۱ - ۱۲ شماره ی ماه از سال - ۲رقمی m
+ ۱۰ ۳ ۱ - ۱۲ شماره ی ماه از سال - ۱یا۲رقمی n
+ ۱۳۸۹ ۱۳۹۱ شماره ی سال سال هفته ای (به عدد) چهار رقمی o
! دلو جوزا حمل تا حوت نام باستانی برج ها p
! پلنگ گاو موش تا خوک نام حیوانی سال ها q
+ ۰۹:۴۶:۳۱ +۰۳۳۰ جمعه، ۲۲ بهمن ۱۳۸۹ ۱۳:۰۸:۲۶ +۰۴۳۰ شنبه، ۴ تیر ۱۳۹۰ : طبق نمونه H:i:s O Y F j ,l :(ltr) ۲ قالب مرکّب r
+ ۱۷ ۰۹ ۰۰ - ۵۹ شماره ی ثانیه در دقیقه - ۲ رقمی s
+ ۳۰ ۳۱ ۳۱ | ۳۰ | ۲۹ تعداد روزهای (همان) ماه t
+ ۷۳۹۰۳۱ ۰۰۰۰۰۰ : طبق نمونه میکرو ثانیه - ۶ رقمی u
! هشتاد و نه نود و یک از ‍ تا نود و نه سال به حروف - خلاصه ی دو رقمی v
+ ۳ ۰ ۰ - ۶ شنبه=۰ ،عدد روز در هفته (IR) w
! منتظر باشید منتظر باشید به زودی " در دست ساخت " x
+ ۸۹ ۹۱ ۰۰ - ۹۹ سال (به عدد) دو رقمی y
+ ۳۰۴ ۴۱ ۰ - (۳۶۴|۳۶۵) تعداد روز (کامل) گذشته از سال z
- - - - کاراکترها با حروف بزرگ بزرگ
+ بعد از ظهر قبل از ظهر : طبق نمونه اوقات روز _ کامل A
+ ۷۱۰ ۰۹۸ ۰۰۰ - ۹۹۹ GMTزمان اینترنتی،۱.۴۴ دق‍ از۲۳:۰۰ B
! ۱۵ ۱۴ ...|۱۵|۱۴|... شماره ی قرن هجری شمسی C
+ چ ش ش تا ج حرف اوّل نام روز هفته، ش=شنبه D
! منتظر باشید منتظر باشید به زودی " در دست ساخت " E
+ دی خرداد فروردین تا اسفند نام ماه از سال - کامل F
+ ۱۹ ۷ ۰ - ۲۳ ساعت در روز - ۲۴ساعته -۱یا۲رقم G
+ ۱۹ ۰۷ ۰۰ - ۲۳ ساعت در روز - ۲۴ساعته -۲رقمی H
+ ۱ ۰ ۰ | ۱ نشانگر طولانی بودن روز = ۱ I
! بیست و نه دو یک تا سی و یک شماره ی روز از ماه به حروف J
! ۸۳.۳ ۱۴ ۱۰۰ - ۰ (**.?) در صد گذشته از سال K
+ ۰ ۱ ۰ | ۱ سال : کبیسه=۱ و غیر کبیسه=۰ L
+ دی خر فر تا اس‍ نام ماه از سال - خلاصه M
+ ۳ ۷ ۱ - ۷ یک شنبه=۱ ،عدد روز در هفته (IR) N
+ +۰۳۳۰ +۰۴۳۰ -۱۲۰۰ ، +۱۴۰۰ ":" اختلاف ساعت جهانی - بدون O
+ +۰۳:۳۰ +۰۴:۳۰ -۱۲:۰۰ ، +۱۴:۰۰ ":" اختلاف ساعت جهانی - با P
! ۶۱ ۳۲۴ (۳۶۵|۳۶۴) - ۰ تعداد روز (کامل) باقی مانده از سال Q
! منتظر باشید منتظر باشید به زودی " در دست ساخت " R
+ ام ام ام "واژه ی "ام S
+ IRST IRDT مخفف مناطق مخفّف منطقه ی زمانی تنظیم شده T
+ ۱۲۹۵۴۳۶۴۶۷ ۱۲۴۳۹۵۵۳۴۶ : طبق نمونه timestamp (Unix) برچسب زمانی U
! هزار و سیصد و هشتاد و نه هزار و سیصد و نود و یک : طبق نمونه سال به حروف - کامل V
+ ۴۳ ۱۱ ۰۰ - (۵۲|۵۳) شماره ی این هفته در سال - ۲رقم W
! منتظر باشید منتظر باشید به زودی " در دست ساخت " X
+ ۱۳۸۹ ۱۳۹۱ : طبق نمونه سال (به عدد) چهار رقمی Y
+ ۱۲۶۰۰ ۱۶۲۰۰ -۴۳۲۰۰ ، ۵۰۴۰۰ اختلاف ساعت جهانی به ثانیه Z

توضیحات کاراکترهای پارامتر اوّل تابع jdate ^

حروف کوچک

a : نمایش اوقات روز به صورت خلاصه
از ساعت ( 00:00 یا 24:00 ) یا 12:00 شب تـــا 11:59 ظهر ، به صورت "ق.ظ"
و از ساعت 12:00 ظهر تـــا 23:59 یا 11:59 شب ، به صورت "ب.ظ" خواهد بود.

b : شماره ی فصل ( ربع ) از سال
در بهار : "1" و در تابستان : "2" و در پاییز : "3" و در زمستان : "4" خواهد بود.

c : یک نمونه قالب مرکّب به صورت Y/n/j ،H:i:s P
برای مثال: "۱۳۸۹/۱۱/۲۲ ,۰۹:۴۶:۳۱ +۰۳:۳۰"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

d : شماره ی روز از ماه (برج) ، به صورت 2 رقمی
از "01" تا "29" یا "30" یا "31"
مثلاً در یکم ، "01" و در بیست و دوم ، "22" است.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.

e : نمایش منطقه ی زمانی که برای اعمال اختلاف ساعت جهانی ، تنظیم شده است.
مثلاً برای جمهوری اسلامی ایران ، "Asia/Tehran" ( یا "Iran" ) است.

f : نام فصل از سال به حروف فارسی
"بهار" یا "تابستان" یا "پاییز" یا "زمستان"

g : نمایش ساعت در روز ، 12 ساعته ، 1 یا 2 رقمی
از "1" تا "12"
مثلاً برای ساعت 7 صبح و 7 عصر ، به صورت "7" است.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.

h : نمایش ساعت در روز ، 12 ساعته ، 2 رقمی
از "01" تا "12"
مثلاً برای ساعت 7 صبح و 7 عصر ، به صورت "07" است.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.

i : نمایش دقیقه در ساعت ، 2 رقمی
از "00" تا "59"
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.

j : شماره ی روز از ماه (برج) ، به صورت 1 یا 2 رقمی
از "1" تا "29" یا "30" یا "31"
مثلاً در یکم ، "1" و در بیست و دوم ، "22" است.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.

k : نمایش درصد باقی مانده از سال ، با امکان یک رقم اعشار
از "100" تا "0"
مثلاً در اوّل سال ، "100" و در آخر سال ، "0" است.
مثل : "51.6" یا "27" یا "16.3" یا "78.2" یا "91" و ...

l : نام فارسی روز در هفته ، به صورت کامل
"شنبه" یا "یکشنبه" یا "دوشنبه" یا "سه شنبه" یا "چهارشنبه" یا "پنجشنبه" یا "جمعه"

m : شماره ی ماه ( برج ) از سال ، به صورت 2 رقمی
از "01" برای فروردین ، تا "12" برای اسفند
مثلاً در تیر ، "04" و در دی، "10" است.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.

n : شماره ی ماه ( برج ) از سال ، به صورت 1 یا 2 رقمی
از "1" برای فروردین ، تا "12" برای اسفند
مثلاً در تیر ، "4" و در دی ، "10" است.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.

o : عدد سال هفته ای ، 4 رقمی
شماره ی سال را به صورت 4 رقمی نشان می دهد.
امّا در هفته هایی که قسمتی از آن در سال قبل و بقیه ی آن در سال بعد است ، در تمام طول
آن هفته ، شماره ی سالی را نشان خواهد داد که قسمت بیشتر هفته در آن سال قرار دارد.

p : نمایش نام باستانی هر یک از برج های سال ، بر اساس صورت های فلکی
در فروردین: "حمل" _ در اردیبهشت: "ثور" _ در خرداد: "جوزا"
در تیر: "سرطان" _ در مرداد: "اسد" _ در شهریور: "سنبله"
در مهر: "میزان" _ در آبان: "عقرب" _ در آذر: "قوس"
در دی: "جدی" _ در بهمن: "دلو" _ در اسفند: "حوت"

q : نمایش نام حیوانی سال ها
طبق یک دوره ی 12 ساله که دائماً تکرار می شود ، از راست به چپ ، عبارت اند از:
"موش" _ "گاو" _ "پلنگ" _ "خرگوش" _ "نهنگ" _ "مار"
"اسب" _ "گوسفند" _ "میمون" _ "مرغ" _ "سگ" _ "خوک"

r : یک نمونه قالب مرکّب به صورت H:i:s O Y F j ،l
برای مثال: "۹:۴۶:۳۱ +۰۳۳۰ جمعه, ۲۲ بهمن ۱۳۸۹"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

s : نمایش ثانیه در دقیقه ، 2 رقمی
از "00" تا "59"
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.

t : نمایش تعداد روز های آن ماه ( برج )
"29" یا "30" یا "31"
برای برج های 1 تا 6 ، "31" و برای برج های 7 تا 11 ، "30" می باشد.
برای برج 12 ( اسفند ) سال های کبیسه ، "30" و سال های غیر کبیسه ، "29" است.

u : نمایش میکرو ثانیه ، یک عدد 6 رقمی
مثلاً: "000000" یا "739031" یا "004126" و ...
ممکن است در بعضی سرورها فعّال نباشد و همیشه به صورت "000000" نمایش داده شود.

v : نمایش سال خلاصه شده به حروف فارسی
مثلاً: "هشتاد و نه" برای 1389 و "نود" برای 1390 و "چهار" برای 1404 و ...

w : عدد روز در هفته ، 0 تا 6
مثلاً: "0" برای شنبه و "1" برای یکشنبه و "6" برای جمعه
آغاز هفته از روز شنبه حساب می شود.

x : در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.

y : عدد سال ، به صورت خلاصه ی 2 رقمی
از "00" تا "99"
مثلاً: "89" برای 1389 و "90" برای 1390 و "04" برای 1404 و ...

z : نمایش تعداد روزهای کامل سپری شده از سال
از "0" تا "364" یا "365"
مثلاً: "0" برای یکم فروردین و "19" برای بیستم فروردین و "50" برای بیستم اردیبهشت و ...

حروف بزرگ

A : نمایش اوقات روز به صورت کامل
از ساعت ( 00:00 یا 24:00 ) یا 12:00 شب تـــا 11:59 ظهر ، به صورت "قبل از ظهر"
و از ساعت 12:00 ظهر تـــا 23:59 یا 11:59 شب ، به صورت "بعد از ظهر" خواهد بود.

B : زمان اینترنتی به وقت جهانی ، یک عدد 3 رقمی
از "000" تا "999"
بر حسب 1.44 دقیقه ی گذشته از ساعت 23:00 به وقت گرینویچ

C : شماره ی قرن (سده ی) هجری شمسی
مثلاً از سال 1301 تا 1400 ، قرن "14" می باشد.
و از سال 1401 تا 1500 ، جزء قرن "15" ام هجری شمسی خواهد بود.

D : حرف اوّل نام روز در هفته
مثلاً: "ش" برای شنبه و "د" برای دوشنبه و ...
"ش" یا "ی" یا "د" یا "س" یا "چ" یا "پ" یا "ج"

E : در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.

F : نام فارسی ماه ( برج ) از سال به صورت کامل
"فروردین" _ "اردیبهشت" _ "خرداد" _ "تیر" _ "مرداد" _ "شهریور"
"مهر" _ "آبان" _ "آذر" _ "دی" _ "بهمن" _ "اسفند"

G : نمایش ساعت در روز ، 24 ساعته ، 1 یا 2 رقمی
از "0" تا "23"
مثلاً: "7" برای ساعت 7 صبح و "19" برای ساعت 7 عصر می باشد.
اعداد تک رقمی به صورت تک رقمی و اعداد دو رقمی به صورت دو رقمی هستند.

H : نمایش ساعت در روز ، 24 ساعته ، 2 رقمی
از "00" تا "23"
مثلاً: "07" برای ساعت 7 صبح و "19" برای ساعت 7 عصر می باشد.
اعداد تک رقمی با افزودن 0 به قبلشان ، به صورت دو رقمی نمایش داده خواهند شد.

I : نشانگر طولانی تر بودن روز و جلو کشیده شدن ساعت
طبق معمول ، در نیمه ی اوّل هر سال، ساعت رسمی کشور به جلو و در پایان نیمه ی اوّل
سال ، به عقب باز می گردد که در جمهوری اسلامی ایران ، مقدار تغییر ، 1 ساعت است.
اگر ساعت توسّط نرم افزار به صورت خودکار به جلو کشیده شده باشد ، مقدار این کاراکتر،
"1" خواهد بود وگرنه ، "0" است که در سرورهایی با تنظیمات استاندارد ، انجام می شود.
جلو کشیدن ، از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال انجام می شود.

J : نمایش شماره ی روز از ماه (برج) به حروف
از "یک" تا "سی و یک" ( یا "سی" یا "بیست و نه" )

K : نمایش درصد سپری شده از سال ، با امکان یک رقم اعشار
از "0" تا "100"
مثلاً در اوّل سال ، "0" و در آخر سال ، "100" است.
مثل : "48.4" یا "73" یا "83.7" یا "11.8" یا "9" و ...

L : نشانگر کبیسه بودن سال
"1" برای سال کبیسه و "0" برای سال غیر کبیسه
اسفند سال های کبیسه ، 30 روزه است ، امّا اسفند سال های غیر کبیسه ، 29 روزه است.
معمولاً در دوره های 4 ساله ، 3 سال معمولی و 1 سال کبیسه است ، امّا این دائمی نیست.

M : دو حرف اوّل نام ماه ( برج ) از سال
مثلاً: "ار" برای اردیبهشت و "دی" برای دی و ...
"فر" _ "ار" _ "خر" _ "تی‍" _ "مر" _ "شه‍" _ "مه‍" _ "آب‍" _ "آذ" _ "دی" _ "به‍" _ "اس‍"

N : عدد روز در هفته ، 1 تا 7
مثلاً: "7" برای شنبه و "1" برای یکشنبه و "6" برای جمعه
آغاز هفته از روز شنبه حساب می شود.

O : نمایش اختلاف ساعت جهانی تنظیم شده ، بدون دو نقطه
مثلاً برای جمهوری اسلامی ایران ، "0330" برای مواقع عادی
و "0430" برای روزهایی که ساعت به جلو کشیده شده است.
( از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال )

P : نمایش اختلاف ساعت جهانی تنظیم شده ، با دو نقطه
مثلاً برای جمهوری اسلامی ایران ، "03:30" برای مواقع عادی
و "04:30" برای روزهایی که ساعت به جلو کشیده می شود.
( از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال )

Q : نمایش تعداد روزهای کامل باقی مانده از سال
از "364" یا "365" تا "0"
مثلاً: "0" برای روز آخر سال

R : در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.

S : نمایش واژه ی "ام"

T : نمایش مخفف منطقه ی زمانی که برای اعمال اختلاف ساعت جهانی ، تنظیم شده.
مثلاً برای جمهوری اسلامی ایران ، "IRST" برای مواقع عادی
و "IRDT" برای روزهایی که ساعت به جلو کشیده می شود.
( از ساعت 24.00 ، یکم فروردین تا سی ام شهریور هر سال )

U : برچسب زمان یونیکس ، Unix timestamp
تعداد ثانیه هایی که از روز 1/1/1970 میلادی ، دقیقاً ساعت 00:00:00 به وقت گرینویچ
گذشته است. عدد این برچسب بسیار مفید ، قابل تبدیل به هر قالبی از زمان می باشد

V : نمایش سال کامل به حروف فارسی
مثلاً: "هزار و سیصد و هشتاد و نه" برای 1389
و "هزار و سیصد و نود" برای 1390
و "هزار و چهارصد و چهار" برای 1404 و ...

W : شماره ی این هفته در سال ، 2 رقمی
از "01" تا "52" یا "53"
آغاز هر هفته از روز شنبه حساب می شود.
وقتی قسمتی از یک هفته در سال قبل و بقیه ی آن در سال بعد باشد، اگر بخش بیشتر هفته
در سال قبل باشد ، در تمام طول آن هفته ، شماره ی آن در سال قبل که "52" یا "53" است،
نمایش داده می شود. امّا اگر بخش بیشتر هفته در سال بعد باشد، در تمام طول همان هفته،
شماره ی آن در سال بعد که "01" است ، نمایش داده می شود . به عبارت دیگر ، آن هفته به
به صورت کامل ، جزء سالی به حساب خواهد آمد که قسمت بزرگ تر هفته در آن سال باشد .

X : در دست ساخت
این کاراکتر ، در نسخه های بعدی نرم افزار ، فعّال خواهد شد.
منتظر بمانید.

Y : عدد سال ، به صورت کامل 4 رقمی
مثلاً: "1389" و "1390" و "1404" و ...

Z : نمایش اختلاف ساعت جهانی تنظیم شده ، بر حسب ثانیه
مثلاً برای جمهوری اسلامی ایران ، "12600" برای مواقع عادی
و "16200" برای روزهایی که ساعت به جلو کشیده می شود.
( از ساعت 24.00 ،یکم فروردین تا سی ام شهریور هر سال )


آموزش استفاده از تابع jdate ^

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

در مثال اوّل ، یک قالب تک کاراکتری می سازیم و خروجی ( نوشته های قرمز رنگ ) را خواهیم داشت. نوشته های سیاه رنگ نیز توضیحات هستند. برای نمایش خروجی ها در صفحه ی مرورگر ، می توانید از echo استفاده کنید. مثلاً: echo jdate('F');

/* نکته: اهمّیّت حروف بزرگ و کوچک در نام تابع و کاراکترهای پارامترها */
jdate('F');// بهمن
jdate('f');// زمستان
jdaTe('f');// خطا ، نام تابع ، اشتباه است

/* ترکیب دو یا چند کاراکتر با حروف اضافه در یک خروجی */
jdate('H i s');// 10 26 53
jdate('H:i:s');// 10:26:53
jdate('Y/n/j');// 1389/11/22
jdate('Y F j');// 22 بهمن 1389
jdate('V F J');// بیست و دو بهمن هزار و سیصد و هشتاد و نه

/* خارج کردن بعضی از کاراکترها یا حروف ، به صورت خام و تبدیل نشده با گذاشتن \ قبل از آن ها */
/* منظور از کاراکتر ، تمامی حروف بزرگ و کوچک انگلیسی است که در جدول مربوطه نیز فهرست شده اند */
jdate('H:i:s');// 10:26:53
jdate('H:\i:s');// 10:i:53
jdate('H : \i\r\a\n');// 10 : iran
jdate('\HH');// H10
jdate('H\H');// 10H
jdate('H\ H');// 10 10
jdate('\HH\H');// H10H
jdate('\H\o\u : H _ \M\i\n : i _ \S\e\c : s');// Hou : 10 _ Min : 26 _ Sec : 53

/* نکته: قبل از کاراکترهای خاص مثل ' و " حتماً از \ استفاده شود */
jdate(" \" H \" ");// " 10 "
jdate(' \' H \' ');// ' 10 '

/* البتّه بستگی به شرایط دارد */
jdate(' " H " ');// " 10 "
jdate(" ' H ' ");// ' 10 '

/* برای خارج کردن خام خود کاراکتر \ از سه تا \ در قبل از آن استفاده شود که با خودش می شوند چهار تا */
jdate('\\\\');// \
jdate('\\\\H');// \10
jdate('\\\\\H');// \H

//
/* ترکیب حروف اضافه با کلمات خروجی */
jdate('F');
// بهمن

jdate('Fماه');
// بهمنماه

jdate('F ماه');
// بهمن ماه

jdate('ماه F');
// ماه بهمن

jdate('J');
// بیست و دو

jdate('Jم');
// بیست و دوم

jdate('Jمین');
// بیست و دومین

jdate('امروز : Jم F است');
// امروز : بیست و دوم بهمن است

jdate('امروز l است');
// امروز جمعه است

//
/* مرتّب کردن ترکیب حروف و اعداد اضافه در خروجی با ساختار پیچیده */
/* ترکیب های پیچیده ، ممکن است نامرتّب یا جا به جا ، نمایش داده شوند. */
/* حتماً آن ها را در بین تگ <span dir=ltr></span> قرار دهید. (چپ به راست) */
/* چند الگوی کاربردی زیر ، از قبل مرتّب شده اند. می توانید از این ها استفاده نمایید. */
/* این الگوها را می توانید ویرایش کنید. حتماً بین تگ <span dir=ltr></span> قرار گیرند. */

jdate('c');
// <span dir=ltr>۱۳۸۹/۱۱/۲۲ ,۱۰:۲۶:۵۳ +۰۳:۳۰</span>
// ۱۳۸۹/۱۱/۲۲ ,۱۰:۲۶:۵۳ +۰۳:۳۰

jdate('r');
// <span dir=ltr>۱۰:۲۶:۵۳ +۰۳۳۰ جمعه, ۲۲ بهمن ۱۳۸۹</span>
// ۱۰:۲۶:۵۳ +۰۳۳۰ جمعه, ۲۲ بهمن ۱۳۸۹

jdate('H:i:s O ,l, j F Y');
// <span dir=ltr>۱۰:۲۶:۵۳ +۰۳۳۰ ,جمعه, ۲۲ بهمن ۱۳۸۹</span>
// ۱۰:۲۶:۵۳ +۰۳۳۰ ,جمعه, ۲۲ بهمن ۱۳۸۹

jdate('H:i:s P | l, j / F / Y');
// <span dir=ltr>۱۰:۲۶:۵۳ +۰۳:۳۰ | جمعه, ۲۲ / بهمن / ۱۳۸۹</span>
// ۱۰:۲۶:۵۳ +۰۳:۳۰ | جمعه, ۲۲ / بهمن / ۱۳۸۹

jdate('H:i:s P | l, j F Y');
// <span dir=ltr>۱۰:۲۶:۵۳ +۰۳:۳۰ | جمعه, ۲۲ بهمن ۱۳۸۹</span>
// ۱۰:۲۶:۵۳ +۰۳:۳۰ | جمعه, ۲۲ بهمن ۱۳۸۹

jdate('l, J / F / V');
// <span dir=ltr>جمعه, بیست و دو / بهمن / هزار و سیصد و هشتاد و نه</span>
// جمعه, بیست و دو / بهمن / هزار و سیصد و هشتاد و نه

jdate('l, J F V');
// <span dir=ltr>جمعه, بیست و دو بهمن هزار و سیصد و هشتاد و نه</span>
// جمعه, بیست و دو بهمن هزار و سیصد و هشتاد و نه

jdate('H:i:s P ,Y/n/j');
// <span dir=ltr>۱۰:۲۶:۵۳ +۰۳:۳۰ ,۱۳۸۹/۱۱/۲۲</span>
// ۱۰:۲۶:۵۳ +۰۳:۳۰ ,۱۳۸۹/۱۱/۲۲

jdate('H:i:s ,Y/n/j');
// <span dir=ltr>۱۰:۲۶:۵۳ ,۱۳۸۹/۱۱/۲۲</span>
// ۱۰:۲۶:۵۳ ,۱۳۸۹/۱۱/۲۲

jdate('H:i:s e ,Y/n/j');
// <span dir=ltr>۱۰:۲۶:۵۳ IRST ,۱۳۸۹/۱۱/۲۲</span>
// ۱۰:۲۶:۵۳ Asia/Tehran ,۱۳۸۹/۱۱/۲۲

jdate('H:i:s T ,Y/n/j');
// <span dir=ltr>۱۰:۲۶:۵۳ IRST ,۱۳۸۹/۱۱/۲۲</span>
// ۱۰:۲۶:۵۳ IRST ,۱۳۸۹/۱۱/۲۲

مقدار پیشفرض برای پارامترهای اختیاری
در این تابع ، به غیر از پارامتر اوّل ، بقیه ی پارامترها اختیاری هستند. اگر پارامترهای اختیاری را وارد نکنید و یا مقدار آن ها را خالی '' بگذارید (در این نرم افزار) ، مقدار پیشفرض برای آن ها وارد خواهد شد. به چند مثال زیر توجّه فرمایید.

مثلاً می خواهیم زبان اعداد خروجی ، انگلیسی باشد ، امّا بقیه ی پارامترهای اختیاری ، به صورت پیشفرض وارد گردند
jdate('H:i:s','','','','en');

و یا منطقه ی اختلاف ساعت جهانی را به وقت گرینویچ تنظیم کنیم ، امّا پارامترهای اختیاری دیگر ، به صورت پیشفرض باشند
jdate('H:i:s','','','GMT');

یا برچسب زمان دلخواه خود را در تابع وارد کنیم ، امّا پارامترهای اختیاری دیگر ، به صورت پیشفرض وارد شوند
jdate('H:i:s','1295436467');

و اگر خواستیم که همه ی پارامترهای اختیاری ، با مقادیر پیشفرض خود وارد شوند
jdate('H:i:s');

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

راه اوّل ، تنظیم دقیق زمان سرور است. امّا اگر سرور متعلّق به شما نیست و از یک هاست (فضای کرایه ای) استفاده می کنید ، باید از روش های دیگر استفاده نمایید.

راه دوم ، خنثی کردن خطا در پارامتر دوم تابع 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 ، خنثی نمایید.
به این ترتیب ، در هنگام نمایش تاریخ های ذخیره شده در دیتابیس نیز ، خطای آن ها قبل از ذخیره کردن ، برطرف شده است.



نشانی کوتاه این صفحه: