سلام کاربرای عزیز ، درهمه زبانهای برنامه نویسی یادگیر ی ایجاد تاریخ شمسی و.. یکی از بحث های مهم در راستای طراحی وب است.در طول روز آنقدر با تاریخ سر و کار داریم که دیگر برای کار کردن با آن نیازی به برنامه ریزی و فکر کردن نداریم.PHP  ابزار قدرتمندی برای تاریخ ریاضی {date arithmetic} در اختیار شما قرار می دهد که فرایند دستکاری و تغییر تاریخ را سهولت می بخشد.

به دست آوردن TIME STAMP {تمبر درج زمان} با time()

تابع، عملکرد time() در PHP تمام اطلاعات مربوط به زمان و تاریخ جاری مورد نیاز را در اختیار شما قرار می دهد. با اینکه به آرگومان {arguement} نیازی ندارد، integer باز می گرداند.

Integer {عدد صحیح} ای که با تابع time() باز می گردد، تعداد ثانیه هایی که از تاریخ نیمه شب January 1،  ۱۹۷۰  بر اساس GMT گذشته را نشان می دهد. این لحظه UNIX epoch خوانده می شود و به تعداد ثانیه هایی که از آن زمان سپری شده اند time stamp گفته می شود.

‎<?php‎

print time();‎

‎?>‎

نتیجه ی زیر به دست می آید.

۹۴۸۳۱۶۲۰۱

البته فهم این نتایج دشوار است. با این وجود PHP ابزاری را فراهم می کند که time stamp را به نوع داده ای که ما متوجه می شویم تبدیل می کند.

تبدیل TIME STAMP با getdate()

عملکرد getdate() به دلخواه یک time stamp را پذیرفته و آریه ای شرکت پذیر {associative array} دربردارنده ی اطلاعات مربوط به تاریخ {date} را در نتیجه برمی گرداند. اگر شما time stamp را حذف کنید،  با time stamp جاری که با time() برگردانده {return} می شود، کار می کند.

جدول زیر عناصر درون آرایه که با تابع getdate() بازگردانده می شود را لیست می کند.

Key  {کلید}

Description {شرح کاربرد}

مثال

Seconds{ثانیه ها}

ثانیه هایی که پس از دقایق نشان داده می شوند(۵۹-۰)

۲۰

Minutes{دقایق}

دقایقی که پس از ساعت{hour} نشان داده می شود(۵۹-۰)

۲۹

Hours{ساعت ها}

ساعاتِ روز (۲۳-۰)

۲۲

Mday {دوشنبه}

یک روز از ماه (۳۱-۱)

۱۱

Wday{چهارشنبه}

یک روزِ هفته(۶-۰)

۴

mon

یک ماه از سال(۱۲-۱)

۷

Year{سال}

سال(۴ رقم)

۱۹۹۷

Yday{روز سال}

روزِ سال(۳۶۵-۰)

۱۹

Weekday{روز هفته}

روز هفته

Thursday{سه شنبه}

Month{ماه}

ماهِ سال

January{ژانویه}

۰

Timestamp

۹۴۸۳۷۰۰۴۸

اکنون شما کنترل و تسلط کامل بر زمان و تاریخ دارید. می توانید تاریخ و زمان را در هر قالب و صورتی که دوست دارید format یا شکل بندی کنید.

مثال

مثال زیر را امتحان کنید.

‎$date_array = getdate();‎

foreach ( $date_array as $key => $val )‎

‎{‎
‎   print “$key = $val

‎”;‎

‎}‎
‎$formated_date  = “Today’s date: “;‎

‎$formated_date .= $date_array[mday] . “/”;‎

‎$formated_date .= $date_array[mon] . “/”;‎

‎$formated_date .= $date_array[year];‎

print $formated_date;‎

‎?>‎

نتیجه ی زیر حاصل می گردد.

seconds = 27

minutes = 25

hours = 11

mday = 12

wday = 6

mon = 5

year = 2007

yday = 131

weekday = Saturday

month = May

۰ = ۱۱۷۸۹۹۴۳۲۷

Today’s date: 12/5/2007

تابع date() رشته ای قالب بندی شده {formatted string} را در نتیجه باز می گرداند که تاریخ {date} را نشان می دهد.شما بوسیله آرگومان رشته ای که باید به date() بدهید می توانید کنترل زیادی بر فرمتی که برمی گرداند داشته باشید.

date(format، )

تابع  date() بطور اختیاری  timestamp را می پذیرد اگر حذف شده باشد زمان و تاریخ جاری را به کار می برد. هر اطلاعات دیگری که در ارایه رشته ای که به date() داده می شود در مقدار بازگشتی  گنجانده می شود.

جدول زیر کدهایی که ارایه رشته ای می تواند در خود جای دهد فهرست کرده.

Format{فرمت}

Description{شرح کاربرد}

مثال

a

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

pm

A

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

PM

d

یک روز از ماه، یک رقم با صفر آغازین

۲۰

D

روزِ هفته {سه حرفی}

thu

F

اسم ماه

JANUARY

h

ساعت(فرمت ۱۲ ساعتی_صفر آغازین)

۱۲

H

ساعت(فرمت ۲۴ ساعتی_صفر آغازین)

۲۲

g

ساعت(فرمت ۱۲ ساعتی_بدون صفر آغازین)

۱۲

G

ساعت(فرمت ۲۴ ساعتی_بدون صفر آغازین)

۲۲

i

دقیقه ها(۵۹-۰)

۲۳

j

یک روز از ماه،  بدون صفر آغازین

۲۰

l (L کوچک)

روز هفته

Thursday {پنج شنبه}

L

سال کبیسه(۱ برای بله، ۰ برای نه)

۱

m

یک ماه از سال( با صفر آغازین_رقم)

۱

M

ماه سال (سه حرفی)

jan

r

تاریخ فرمت شده RFC 2822

Thu،  ۲۱ Dec 2000 16:01:07 +0200

n

ماهِ سال(رقم-بدون صفر آغازین)

۲

s

ثانیه های یک ساعت

۲۰

U

Time stamp

۹۴۸۳۷۲۴۴۴

y

سال(دو رقم)

۰۶

Y

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

۲۰۰۶

z

روزِ سال(۳۶۵-۰)

۲۰۶

Z

افست به ثانیه براساس GMT

مثال

مثال زیر را امتحان کنید.

print date(“m/d/y G.i:s

‎”‎، ‏‎ time());‎

print “Today is “;‎

print date(“j of F Y، ‏‎ \a\\t g.i a”‎، ‏‎ time());‎

‎?>‎

نتیجه ی زیر حاصل می گردد.

۰۱/۲۰/۰۰ ۱۳٫۲۷:۵۵

Today is 20 of January 2000،  at 1.27 pm

امیدوارم در این بخش شیوه ی فرمت کردن زمان و تاریخ بر اساس نیازِتان را آموخته باشید.