با عرض سلام خدمت کاربران محترم وب سایت پی وی لرن. در این جلسه و جلسات آتی قصد داریم تا به مباحث پیشرفته در php بپردازیم.
در این جلسه نیز کار با توابع تاریخ و زمان در php را آموزش خواهیم داد.
ما از تابع ()date برای قالب بندی (format) یک تاریخ یا زمان استفاده خواهیم کرد.
تابع ()date یک timestamp را به یک تاریخ و زمان قابل خواندن قالب دهی می کند.
ساختار تابع:
1 | date(format,timestamp) |
توضیحات | پارامتر |
ضروری. فرمت timestamp را مشخص می کند | format |
اختیاری. یک timestamp را مشخص می کند. پیش فرض تاریخ و زمان فعلی است | timestamp |
یک timestamp دنباله ای از کاراکتر هاست که تاریخ و یا زمان را در یک رویداد خاص نشان می دهد.
پارامتر فرمت در تایع ()date نحوه قالب بندی زمان و تاریخ را مشخص می کند.
برخی از کاراکتر هایی که معمولا برای تاریخ استفاده می شوند:
کاراکتر های دیگر مانند “/”, “.” یا “-” می توانند بین کاراکتر های بالا برای اضافه کردن قالب بندی قرار بگیرند.
1 2 3 4 5 6 7 8 9 10 11 | <?php echo "Today is " . date("Y/m/d") . "<br>"; echo "Today is " . date("Y.m.d") . "<br>"; echo "Today is " . date("Y-m-d") . "<br>"; echo "Today is " . date("l"); ?> /* Today is 2018/07/07 Today is 2018.07.07 Today is 2018-07-07 Today is Saturday */ |
نکته: می توان از تابع ()date برای بروزرسانی خودکار سال کپی رایت بر روی سایت استفاده کرد.
1 2 | © 2010-<?php echo date("Y");?> // © 2010-2018 |
برخی از کاراکتر هایی که معمولا برای زمان استفاده می شوند.
1 2 3 | <?php echo "The time is " . date("h:i:sa"); ?> // The time is 12:30:24am |
توجه داشته باشید که تابع ()date زبان php تاریخ و زمان سرور را به ما بر می گرداند.
اگر مشاهده کردید زمانی را که از می گیرید درست نیست، احتمالا به این دلیل هست که سرور در یک کشور دیگری قرار دارد یا با یک time zone مختلفی تنظیم شده است.
مثال زیر time zone را به شهر نیویورک ایالات متحده تنظیم می کند
1 2 3 | date_default_timezone_set("America/New_York"); echo "The time is " . date("h:i:sa"); ?> |
پارمتر اختیاری timestamp در تابع ()date یک timestamp را مشخص می کند. اگر شما یک timestamp را مشخص نکنید، تاریخ و زمان استفاده خواهد شد.
تابع ()mktime یک timestamp یونیکس را برای زمان بی می گرداند. timestamp یونیکس شامل تعداد ثانیه های بین تاریخ Janiary 1 1970 00:00:00 GMT و زمان فعلی است.
ساختار تابع
1 | mktime(hour,minute,second,month,day,year) |
مثال:
1 2 3 4 5 | <?php $d=mktime(11, 14, 54, 8, 12, 2014); echo "Created date is " . date("Y-m-d h:i:sa", $d); ?> // Created date is 2014-08-12 11:14:54am |
تابع ()strtotime برای تبدیل یک رشته خوانا برای انسان به یک unix time استفاده می شود.
ساختار تابع:
1 | strtotime(time,now) |
مثال:
1 2 3 4 | <?php $d=strtotime("10:30pm April 15 2014"); echo "Created date is " . date("Y-m-d h:i:sa", $d); ?> // Created date is 2014-04-15 10:30:00pm |
php در تبدیل یک رشته به تاریخ هوشمندانه عمل میکند. بنابراین می توانید از پارامتر های مختلفی استفاده کنید:
1 2 3 4 5 6 7 8 9 10 | <?php $d=strtotime("tomorrow"); // تاریخ فردا echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("next Saturday"); // تاریخ شنبه هفته دیگه echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("+3 Months"); // تاریخ 3 ماه دیگه echo date("Y-m-d h:i:sa", $d) . "<br>"; ?> |
مثال زیر تاریخ ها را برای ۶ شنبه بعدی چاپ می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $startdate = strtotime("Saturday"); $enddate = strtotime("+6 weeks", $startdate); while ($startdate < $enddate) { echo date("M d", $startdate) . "<br>"; $startdate = strtotime("+1 week", $startdate); } ?> /* Jul 07 Jul 14 Jul 21 Jul 28 Aug 04 Aug 11 */ |
مثال زیر تعداد روز ها تا تاریخ ۴ July را چاپ می کند:
1 2 3 4 5 | <?php $d1=strtotime("July 04"); $d2=ceil(($d1-time())/60/60/24); echo "There are " . $d2 ." days until 4th of July."; ?> // There are -3 days until 4th of July. |
جلسه کار با تاریخ و زمان در PHP نیز به پایان رسید. در جلسه بعدی به دستور include در زبان php خواهیم پرداخت. با پی وی لرن همراه باشید.
همپنین می توانید نظرات و سوالات خود را از طریق بخش نظرات با ما در میان بگذارید.