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

دارای 5 پارامتر که فقط پارامتر اوّل آن الزامی است ، بقیه ی پارامترها اختیاری اند و در صورت وارد نشدن یا خالی '' گذاشتن آن ها ، مقدار پیشفرض برایشان وارد می شود.
این تابع مشابه تابع strftime است و تقریباً عملکردی مانند آن دارد ، امّا بر اساس تاریخ هجری شمسی عمل می کند. روش استفاده از این تابع با تابع jdate شباهت زیادی دارد ، امّا تفاوتشان به این صورت است که در پارامتر اوّل تابع jdate یک قالب دلخواه را وارد می کنید و همه ی کاراکترها تبدیل خواهند شد ، مگر آن هایی که به همراه \ وارد شده باشند. امّا در پاراکتر اوّل تابع jstrftime همه ی کاراکترها به صورت خام و تبدیل نشده خارج می شوند ، مگر آن هایی که همراه با % وارد شده باشند. البتّه کاربرد بسیاری از کاراکترهای (حروف) قالب در دو تابع jdate و jstrftime با یکدیگر تفاوت دارد که کاربرد هرکدام را می توانید از جدول های راهنما بیابید. کاربرد بهتر این تابع برای مواردی است که قصد نمایش قالب هایی از تاریخ و زمان را در میان یک متن داریم ، یعنی برعکس تابع jdate .

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

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

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

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

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

نکته: به غیر از پارامتر اوّل (format) ، بقیه ی پارامترها مشابه با پارامترهای همنام در تابع jdate عمل می کنند.

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

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

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

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

^ jstrftime() جدول شماره ی 5 _کاراکترهای پارامتر اوّل تابع
=jdate() مثال ۲ مثال ۱ دامنه jstrftime() کاربرد در کاراکتر
- - - - مربوط به روز Day
'D' چ ش ش تا ج حرف اوّل نام روز هفته، ش=شنبه %a
'l' چهار شنبه شنبه شنبه تا جمعه نام روز در هفته - کامل %A
'd' ۲۳ ۹ ۰۱ - ۳۱ شماره ی روز از ماه - ۲ رقمی %d
- ۲۳ ۲ ۱ - ۳۱ ...شماره ی روز از ماه - امّا %e
- ۳۰۵ ۰۴۲ ۰۰۱ - (۳۶۵|۳۶۶) شماره ی روز در سال - ۳ رقمی %j
'N' ۳ ۷ ۱ - ۷ یک شنبه=۱ ،عدد روز در هفته (IR) %u
'w' ۳ ۰ ۰ - ۶ شنبه=۰ ،عدد روز در هفته (IR) %w
- - - - مربوط به هفته Week
- ۴۳ ۱۱ ۰۰ - (۵۲|۵۳) شماره خاص هفته در سال - ۲رقم %U
'W' ۴۳ ۱۱ ۰۱ - (۵۲|۵۳) شماره خاص هفته در سال - ۲رقم %V
- ۴۳ ۱۱ ۰۰ - (۵۲|۵۳) شماره خاص هفته در سال - ۲رقم %W
- - - - مربوط به ماه Month
'M' دی خر فر تا اس‍ نام ماه از سال - خلاصه %b
'F' دی خرداد فروردین تا اسفند نام ماه از سال - کامل %B
'M' دی خر فر تا اس‍ %b نام ماه از سال - خلاصه ، برابر %h
'm' ۱۰ ۰۳ ۰۱ - ۱۲ شماره ی ماه از سال - ۲رقمی %m
- ۱۴ ۱۳ ...خارج قسمت خارج قسمت سال ، بخش بر ۱۰۰ %C
- ۸۹ ۹۱ ۰۰ - ۹۹ سال هفته ای (به عدد) دو رقمی %g
'o' ۱۳۸۹ ۱۳۹۱ : طبق نمونه سال هفته ای (به عدد) چهار رقمی %G
'y' ۸۹ ۹۱ ۰۰ - ۹۹ سال (به عدد) دو رقمی %y
'Y' ۱۳۸۹ ۱۳۹۱ : طبق نمونه سال (به عدد) چهار رقمی %Y
- - - - مربوط به زمان Time
'H' ۱۹ ۰۷ ۰۰ - ۲۳ ساعت در روز - ۲۴ساعته -۲رقمی %H
'h' ۱۲ ۰۷ ۰۱ - ۱۲ ساعت در روز - ۱۲ ساعته - ۲رقمی %I
- ۱۲ ۷ ۱ - ۱۲ ...ساعت در روز -۱۲ساعته ، امّا %l
'i' ۲۱ ۱۷ ۰۰ - ۵۹ دقیقه در ساعت - ۲ رقمی %M
'A' بعد از ظهر قبل از ظهر : طبق نمونه اوقات روز _ کامل %p
'a' ب.ظ ق.ظ ق.ظ | ب.ظ اوقات روز - به صورت خلاصه %P
- ۰۹:۴۶:۳۱ قبل از ظهر ۰۱:۰۸:۲۶ بعد از ظهر : طبق نمونه :(dir="ltr") ۱ قالب مرکّب %r
- ۰۹:۴۶ ۱۳:۰۸ : طبق نمونه :(dir="ltr") ۲ قالب مرکّب %R
's' ۱۷ ۰۹ ۰۰ - ۵۹ شماره ی ثانیه در دقیقه - ۲ رقمی %S
- ۰۹:۴۶:۳۱ ۱۳:۰۸:۲۶ : طبق نمونه :(dir="ltr") ۳ قالب مرکّب %T
- ۰۹:۴۶:۳۱ ۰۱:۰۸:۲۶ : طبق نمونه :(dir="ltr") ۴ قالب مرکّب %X
'O' +۰۳۳۰ +۰۴۳۰ -۱۲۰۰ ، +۱۴۰۰ ":" اختلاف ساعت جهانی - بدون %z
'T' IRST IRDT مخفف مناطق مخفّف منطقه ی زمانی تنظیم شده %Z
- - - - مربوط به برچسب های تاریخ و زمان Time... Stamps
- ۰۹:۴۶:۳۱ +۰۳:۳۰ جمعه، ۲۲ بهمن ۱۳۸۹ ۱۳:۰۸:۲۶ +۰۴:۳۰ شنبه، ۴ تیر ۱۳۹۰ : طبق نمونه :(dir="ltr") ۵ قالب مرکّب %c
- ۸۹/۱۱/۲۲ ۹۰/۰۴/۰۴ : طبق نمونه :(dir="ltr") ۶ قالب مرکّب %D
- ۱۳۸۹-۱۱-۲۲ ۱۳۹۰-۰۴-۰۴ : طبق نمونه :(dir="ltr") ۷ قالب مرکّب %F
'U' ۱۲۹۵۴۳۶۴۶۷ ۱۲۴۳۹۵۵۳۴۶ : طبق نمونه timestamp (Unix) برچسب زمانی %s
- ۸۹/۱۱/۲۲ ۹۰/۰۴/۰۴ : طبق نمونه :(dir="ltr") ۸ قالب مرکّب %x
- - - - متفرّقه Miscellaneous
- -سطر جدید- -سطر جدید- \n ("\n") کاراکتر مخصوص سطر جدید %n
- -فاصله ی تب- -فاصله ی تب- \t Tab ("\t") کاراکتر مخصوص تب %t
% % % % ("%") کاراکتر مخصوص درصد %%

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

مربوط به روز _ Day

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

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

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

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

%j : نمایش شماره ی روز در سال
از "001" تا "365" یا "366"
مثلاً: "001" برای یکم فروردین و "051" برای بیستم اردیبهشت و "365" برای بیست و نهم اسفند و ...
تقریباً برابر با jdate('z')+1 ، البتّه به صورت سه رقمی
اعداد تک رقمی یا دو رقمی با افزودن 0 ها به قبلشان ، به صورت سه رقمی نمایش داده خواهند شد.

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

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

مربوط به هفته _ Week

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

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

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

مربوط به ماه _ Month

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

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

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

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

%C : خارج قسمت تقسیم شماره ی سال به عدد 100
برابر با دو رقم اوّل شماره ی سال
مثلاً "13" برای سال 1390 یا "14" برای سال 1400

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

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

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

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

مربوط به زمان _ Time

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

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

%l : نمایش ساعت در روز ، 12 ساعته ، 1 رقمی با کاراکتر فاصله یا 2 رقمی
از "1 " تا "12"
مثلاً برای ساعت 7 صبح و 7 عصر ، به صورت "7 " است.
اعداد تک رقمی به صورت تک رقمی به همراه یک کاراکتر فاصله (U+0020) در قبلشان
و اعداد دو رقمی به صورت دو رقمی هستند.

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

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

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

%r : یک نمونه قالب مرکّب
برای مثال: "۰۹:۴۶:۳۱ قبل از ظهر"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

%R : یک نمونه قالب مرکّب
برای مثال: "۰۹:۴۶"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

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

%T : یک نمونه قالب مرکّب
برای مثال: "۰۹:۴۶:۳۱"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

%X : یک نمونه قالب مرکّب
برای مثال: "۰۹:۴۶:۳۱"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

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

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

مربوط به برچسب های تاریخ و زمان _ Time and Date Stamps

%c : یک نمونه قالب مرکّب
برای مثال: "۰۹:۴۶:۳۱ +۰۳:۳۰ جمعه، ۲۲ بهمن ۱۳۸۹"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

%D : یک نمونه قالب مرکّب
برای مثال: "۸۹/۱۱/۲۲"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

%F : یک نمونه قالب مرکّب
برای مثال: "۱۳۸۹-۱۱-۲۲"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

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

%x : یک نمونه قالب مرکّب
برای مثال: "۸۹/۱۱/۲۲"
امّا برای نمایش صحیح در صفحات html ، باید در بین تگ <span dir="ltr"></span> قرار گیرد.

متفرّقه _ Miscellaneous

%n : کاراکتر مخصوص سطر جدید ("\n")
جهت رفتن به سطر جدید در سورس

%t : کاراکتر مخصوص تب - ("\t") Tab
جهت ایجاد فاصله ی هوشمند تب

%% : کاراکتر مخصوص درصد ("%")
درج علامت درصد (%) در خروجی


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

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

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

/* نکته: اهمّیّت حروف بزرگ و کوچک در نام تابع و کاراکترهای پارامترها */
jstrftime('%Y');// 1389
jstrftime('%y');// 89‍
jstrftimE('%y');// خطا ، نام تابع ، اشتباه است

/* ترکیب دو یا چند کاراکتر با حروف اضافه در یک خروجی */
jstrftime('%H %M %S');// 10 26 53
jstrftime('%H:%M:%S');// 10:26:53
jstrftime('%Y/%m/%d');// 1389/11/22
jstrftime('%Y %B %e');// 22 بهمن 1389

/* خارج کردن کاراکترها یا حروف ، به صورت خام و تبدیل نشده با قرار ندادن % قبل از آن ها */
/* منظور از کاراکتر ، تمامی حروف بزرگ و کوچک انگلیسی است که در جدول مربوطه نیز فهرست شده اند */
jstrftime('%H:%M:%S');// 10:26:53
jstrftime('%H:M:%S');// 10:M:53
jstrftime('%H : iran');// 10 : iran
jstrftime('H%H');// H10
jstrftime('%HH');// 10H
jstrftime('%H %H');// 10 10
jstrftime('H%HH');// H10H
jstrftime('Hou : %H _ Min : %M _ Sec : %S');// Hou : 10 _ Min : 26 _ Sec : 53

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

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

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

//
/* ترکیب حروف اضافه با کلمات خروجی */
jstrftime('امروز %A است');
// امروز جمعه است

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

jstrftime('%c');
// <span dir=ltr>۰۹:۴۶:۳۱ +۰۳:۳۰ جمعه، ۲۲ بهمن ۱۳۸۹</span>
// ۰۹:۴۶:۳۱ +۰۳:۳۰ جمعه، ۲۲ بهمن ۱۳۸۹

jstrftime('%r');
// <span dir=ltr>۰۹:۴۶:۳۱ قبل از ظهر</span>
// ۰۹:۴۶:۳۱ قبل از ظهر

jstrftime('%H:%M:%S %z ,%A, %e %B %Y');
// <span dir=ltr>۰۹:۴۶:۳۱ +۰۳۳۰ ,جمعه, ۲۲ بهمن ۱۳۸۹</span>
// ۰۹:۴۶:۳۱ +۰۳۳۰ ,جمعه, ۲۲ بهمن ۱۳۸۹

jstrftime('%H:%M:%S %z | %A, %e / %B / %Y');
// <span dir=ltr>۰۹:۴۶:۳۱ +۰۳۳۰ | جمعه, ۲۲ / بهمن / ۱۳۸۹</span>
// ۰۹:۴۶:۳۱ +۰۳۳۰ | جمعه, ۲۲ / بهمن / ۱۳۸۹

jstrftime('%H:%M:%S %Z | %A, %e / %B / %Y');
// <span dir=ltr>۰۹:۴۶:۳۱ IRST | جمعه, ۲۲ / بهمن / ۱۳۸۹</span>
// ۰۹:۴۶:۳۱ IRST | جمعه, ۲۲ / بهمن / ۱۳۸۹

jstrftime('%H:%M:%S %z , %Y/%m/%e');
// <span dir=ltr>۰۹:۴۶:۳۱ +۰۳۳۰ , ۱۳۸۹/۱۱/۲۲</span>
// ۰۹:۴۶:۳۱ +۰۳۳۰ , ۱۳۸۹/۱۱/۲۲

jstrftime('%H:%M:%S - %Y/%m/%e');
// <span dir=ltr>۰۹:۴۶:۳۱ - ۱۳۸۹/۱۱/۲۲</span>
// ۰۹:۴۶:۳۱ - ۱۳۸۹/۱۱/۲۲

jstrftime('%Y/%m/%e ,%A');
// <span dir=ltr>۱۳۸۹/۱۱/۲۲ ,جمعه</span>
// ۱۳۸۹/۱۱/۲۲ ,جمعه

jstrftime('%Y/%m/%e');
// <span dir=ltr>۱۳۸۹/۱۱/۲۲</span>
// ۱۳۸۹/۱۱/۲۲

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

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

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

یا برچسب زمان دلخواه خود را در تابع وارد کنیم ، امّا پارامترهای اختیاری دیگر ، به صورت پیشفرض وارد شوند
jstrftime('%c','1295436467');

و اگر خواستیم که همه ی پارامترهای اختیاری ، با مقادیر پیشفرض خود وارد شوند
jstrftime('%c');

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

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

راه دوم ، خنثی کردن خطا در پارامتر دوم تابع jstrftime است. فقط کافیست مقدار این خطا را به ثانیه حساب کرده و در پارامتر دوم اعمال نمایید. مثلاً اگر زمان سرور شما 2 دقیقه و 27 ثانیه جلو است ، باید آن را به همین مقدار ، عقب بکشید. ابتدا 2 دقیقه را در عدد 60 ضرب می کنیم تا به ثانیه تبدیل شود ، سپس عدد حاصل (120) را با 27 جمع می کنیم. آنگاه پارامتر دوم تابع jstrftime را به صورت
jstrftime('%c',time()-147);
وارد می کنیم تا 147 ثانیه به عقب کشیده شود. برای عقب کشیدن از تفریق ( - ) و برای جلو کشیدن از جمع ( + ) استفاده می نماییم.

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

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



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