آموزش کامل PHP – قسمت 24: کار با تاریخ و ساعت

کار با تاریخ و ساعت در php

در این جلسه از آموزش های php با پردیس وردپرس به کار با تاریخ و ساعت در پی‌اچ‌پی می پردازیم. مواقع زیادی در برنامه نویسی به کار کردن با تاریخ و ساعت احتیاج داریم. ابزار های زیادی برای این کار در php وجود دارد.

دریافت زمان با تابع ()time

این تابع تمام اطلاعات لازم برای زمان جاری را در اختیار شما قرار می دهد. تابع نیاز به هیچ آرگومان ورودی ندارد و یک رشته خروجی متنی دارد. رشته متنی که از این تابع برگردانده می‌شود تعداد ثانیه‌های سپری شده از نیمه شب ۱ ژانویه ۱۹۷۰ را به وقت GMT نشان می‌دهد. زمان حاضر به شکل UNIX نمایش داده می شود که این به معنی تعداد ثانیه‌های گذشته شده از یک زمان مرجع می باشد.

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

    <?php

    echo time();

    ?>

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

تابع ()getdate

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

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

شماره کلید و توضیح مثال
1 seconds

تعداد ثانیه‌های گذشته از دقیقه کنونی (0-59)

20
2 minutes

تعداد دقایق گذشته از ساعت کنونی (0 – 59)

29
3 hours

تعداد ساعت‌های گذشته از روز کنونی (0 – 23)

22
4 mday

روز ماه کنونی (1 – 31)

11
5 wday

روز هفته کنونی (0 – 6)

4
6 mon

ماه سال کنونی (1 – 12)

7
7 year

سال (4 رقمی)

1997
8 yday

روزکنونی در سال جاری ( 0 – 365 )

19
9 weekday

روز جاری در هفته کنونی

Thursday
10 month

ماه جاری در سال کنونی

January
11 0

Timestamp – تایم‌استامپ

948370048

حال شما می‌توانید با استفاده از داده‌های فوق کنترل کاملی را بر روی تاریخ و ساعت داشته باشید. شما می‌توانید بر اساس فرمت مورد نیاز خود از داده‌های بالا استفاده کنید.

به مثال زیر توجه کنید:

    <?php
       $date_array = getdate();
       
       foreach ( $date_array as $key => $val ){
          print "$key = $val<br />";
       }
    	
       $formated_date  = "Today's date: ";
       $formated_date .= $date_array['mday'] . "/";
       $formated_date .= $date_array['mon'] . "/";
       $formated_date .= $date_array['year'];
       
       print $formated_date;
    ?>

نتیجه اجرای کد فوق مانند زیر است:

seconds = 37

minutes = 49

hours = 09

mday = 23

wday = 23

mon = 4

year = 2017

yday = 157

weekday = Sunday

month = April

0 = 1876894562

Today’s date: 23/4/2017

تبدیل timestamp با تابع ()date

 منظور از timestamp خروجی تابع time است. تابع date شکل فرمت بندی شده ای از تاریخ و زمان را نشان می دهد. تعداد بسیار زیادی فرمت بر حسب خلاقیت یا نیاز خود با این تابع بدست آورید. کد استاندارد این تابع به شکل زیر است:

date(format,timestamp)

تابع date نیز می‌تواند timestamp مورد نظرتان را به صورت اختیاری به عنوان ورودی دریافت کند و اگر این ورودی تعیین نشود، از زمان کنونی استفاده خواهد شد. در جدول زیر لیستی از فرمت‌هایی که می‌توانید با این تابع استفاده کنید آورده شده است:

شماره فرمت و توضیح مثال
1 a

‘am’ یا ‘pm’ با حروف کوچک

pm
2 A

‘AM’ یا ‘PM’ با حروف بزرگ

PM
3 d

روز جاری در ماه کنونی

20
4 D

روز هفته جاری (سه کاراکتر)

Thu
5 F

نام ماه جاری

January
6 h

ساعت (فرمت ۱۲ ساعته – اعداد تک رقمی با یک صفر پیش از عدد)

12
7 H

ساعت (فرمت ۲۴ ساعته – اعداد تک رقمی با یک صفر پیش از عدد)

22
8 g

ساعت (فرمت ۱۲ ساعته  – اعداد تک رقمی بدون یک صفر پیش از عدد)

12
9 G

ساعت (فرمت ۲۴ ساعته – اعداد تک رقمی بدون یک صفر پیش از عدد)

22
10 i

دقیقه ( 0 – 59 )

23
11 j

روز ماه جاری (اعداد تک رقمی بدون یک صفر پیش از عدد)

20
12 l (حرف کوچک ‘L’)

روز هفته

Thursday
13 L

کبیسه بودن سال (‘1’ بله, ‘0’ خیر)

1
14 m

ماه جاری سال کنونی (عدد – اعداد تک رقمی با یک صفر پیش از عدد)

1
15 M

ماه جاری سال کنونی (سه کاراکتر)

Jan
16 r

فرمت RFC 2822

Thu, 21 Dec 2000 16:01:07 +0200
17 n

ماه جاری سال کنونی (عدد – اعداد تک رقمی بدون یک صفر پیش از عدد)

2
18 s

ثانیه‌های گذشته شده از دقیقه جاری

20
19 U

تایم‌استامپ

948372444
20 y

سال (دو رقم)

06
21 Y

سال (چهار رقم)

2006
22 z

روز کنونی سال جاری (0 – 365)

206
23 Z

افست ثانیه‌ها از GMT

+5

حال برای مثال کد زیر را در یک فایل وارد کرده و آن را اجرا کنید:

    <?php
       print date("m/d/y G.i:s<br>", time());
       print "Today is ";
       print date("j of F Y, \a\\t g.i a", time());
    ?>

خروجی کد بالا مانند زیر خواهد بود:

04/23/17 10.02:17<bthu, 23=”” apr=”” 2017=”” 10:02:17=”” +0000=””>Today is 23 2017s April 2017, at 10.02 am

در جلسه بعدی با شمسی سازی تاریخ در php آشنا خواهیم شد.