فرمت فاصله (date_interval_format)
گاهی می خواهیم «فاصله زمانی (Interval)» را قشنگ نمایش دهیم. تابع DateInterval::format() همین کار را می کند. با «کد الگو (Format String)» به آن می گوییم چه چیزهایی چاپ کند؛ مثل سال، ماه یا کل روزها.
تعریف کوتاه و کاربرد
تابع date_interval_format() فقط یک نام دیگر برای DateInterval::format() است. خروجی یک متن قالب بندی شده می دهد. این متن از فاصله ساخته شده با date_diff() می آید.
نحو (Syntax) و پارامتر
DateInterval::format(format)
format: رشته الگو. هر حرف باید با % شروع شود؛ مثل %a برای «کل روزها».
مثال پایه با کل روزها
<?php
$date1 = date_create("2013-01-01");
$date2 = date_create("2013-02-10");
$diff = date_diff($date1, $date2);
echo $diff->format("Total number of days: %a.");
?>
مثال ترکیبیِ ساده
در این الگو، سال، ماه، روز و علامت مثبت/منفی را چاپ می کنیم. «علامت (Sign)» یعنی جهت فاصله.
<?php
$date1 = date_create("2013-01-01 08:05:06");
$date2 = date_create("2014-03-04 12:30:40");
$diff = date_diff($date1, $date2);
echo $diff->format("%R%y years, %m months, %d days");
echo "\n";
echo $diff->format("%H hours, %I minutes, %S seconds");
?>
کاراکترهای مهمِ فرمت
%%: چاپِ خود درصد.%Y/%y: سال با صفر ابتدایی / بدون آن.%M/%m: ماه با صفر / بدون آن.%D/%d: روز با صفر / بدون آن.%a: کل روزها؛ نتیجه مستقیمdate_diff().%H/%h: ساعت با صفر / بدون آن.%I/%i: دقیقه با صفر / بدون آن.%S/%s: ثانیه با صفر / بدون آن.%F/%f: میکروثانیه با حداقل 6 رقم / همان مقدار.%R/%r: علامت «+» یا «-» / فقط «-» در منفی.
نکته: همیشه قبل از هر کاراکتر، % بگذار. مثلا %d درست است.
نکات نسخه و سازگاری
این قابلیت از PHP 5.3 به بعد هست. از PHP 7.1، حروف F و f اضافه شدند. برای جمع روزها از %a استفاده کن.
برای ساخت فاصله، اول با date_diff() اختلاف دو تاریخ را بگیر. سپس با «فرمت فاصله زمانی» نمایش بده.
جمع بندی سریع
date_interval_format()همانDateInterval::format()است.- هر نشانه باید با
%شروع شود. %aکل روزها را می دهد.- برای علامت از
%Rیا%rاستفاده کن. - از PHP 7.1،
%Fو%fدر دسترس اند.