PHP: کار با توابع زمان (بخش 1)
PHP: کار با توابع زمان (بخش 1)
سطح : مقدماتی
در این پست به بررسی توابع مربوط به زمان می پردازم.
PHP از سیستم ذخیره زمان به سبک UNIX استفاده می کند که به آن Unix TimeStamp یا Epoch time می گویند. این سیستم زمان بندی بدین صورت است که هر زمان به صورت یک عدد 10 رقمی ذخیره می شود که نشان دهنده ی تعداد ثانیه های گذشته از سال 1970 است.
بر طبق این سیستم زمان بندی، عدد 0 به معنی اول ژانویه 1970 در ساعت 00.00 است و عدد 946684800 به معنی اولین ثانیه از سال 2000 است. این سیستم ذخیره زمان از کارایی بسیار بالایی برخوردار است. زیرا در این عدد تمام اطلاعات مربوط به زمان از جمله سال، ماه، روز، روز هفته، ساعت، دقیقه و ثانیه نهفته است.
اولین تابعی که ما نیاز داریم تابع time() است. این تابع زمان فعلی را بر اساس timestamp برمی گرداند. اگر بخواهیم تاریخ خاصی را به فرم timestamp بدست آوریم از تابع mktime ($hour, $minute, $second, $month, $day, $year) استفاده می کنیم. اگر به این تابع هیچ پارامتر ورودی ندهیم، خروجی آن زمان فعلی است که معادل تابع time() است.
مثلا اگر بخواهیم زمان 11 اگوست 1989 (مصادف با روز تولد خودم) را به timestamp تبدیل کنیم به روش زیر عمل می کنیم:
$mybirthday = mktime(0, 0, 0, 8, 11, 1989);
روش timestamp در سیستم های 32 بیتی، زمانی بین دسامبر 1902 تا ژانويه 2037 را دربر می گیرد که بسیاری از تاریخ تولدهای گذشته و زمان های آینده را در بر نمی گیرد. اما در سیستم های 64 بیتی این زمان به میلیون ها سال گسترش یافته و هیچ محدودیتی برای استفاده از تاریخ ها، نداریم.
تابع مورد مطالعه بعدی، تابع checkdate($month, $day, $year) است که صحت تاریخ ورودی را بررسی می کند. مثلا در برخی از ماه ها که 30 روز دارد، عدد 31 برای $day نامعتبر می باشد. این تابع با محاسبات خود این موضوع را پی می برد، ضمن این که سال های کبیسه را نیز در نظر می گیرد.
در PHP توابعی فراوانی وجود دارد که سعی می کنم در پست های آینده آن ها را بررسی کنم.

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