کار با توابع تاریخ و زمان (Date & Time) در پی اچ پی
مدیریت تاریخ و زمان یکی از نیازهای اساسی در توسعه وب است. از ثبت زمان دقیق عضویت یک کاربر و انتشار یک مقاله گرفته تا زمانبندی اجرای وظایف (Cron Jobs) و اعتبارسنجی توکنها، همگی نیازمند کار با تاریخ و زمان هستند. زبان PHP ابزارها و توابع بسیار قدرتمندی را برای مدیریت این دادهها در اختیار ما قرار میدهد. در این مقاله از سایت پی اچ پی ساز (در دستهبندی متغیرها و توابع)، به بررسی مهمترین توابع تاریخ و زمان در PHP و نحوه کار با آنها میپردازیم.
۱. تنظیم منطقه زمانی (Timezone)
پیش از کار با توابع تاریخ و زمان، بسیار مهم است که منطقه زمانی (Timezone) سرور خود را به درستی تنظیم کنید. در غیر این صورت، ممکن است زمان نمایش داده شده با زمان محلی شما متفاوت باشد. برای تنظیم منطقه زمانی، از تابع date_default_timezone_set() استفاده میکنیم:
// تنظیم منطقه زمانی به وقت تهران
date_default_timezone_set('Asia/Tehran');
توصیه میشود این خط کد را در ابتداییترین فایل پروژه خود (مانند فایل تنظیمات یا کانفیگ) قرار دهید.
۲. تابع date(): فرمتبندی تاریخ و زمان
پرکاربردترین تابع برای نمایش تاریخ و زمان، تابع date() است. این تابع یک رشته (String) را به عنوان فرمت دریافت کرده و زمان فعلی سرور را بر اساس آن قالببندی میکند.
// نمایش تاریخ به صورت: 2026/08/14
echo date("Y/m/d");
// نمایش زمان به صورت: 14:30:00
echo date("H:i:s");
// ترکیب تاریخ و زمان
echo date("Y-m-d H:i:s");
کاراکترهای پرکاربرد در تابع date:
| کاراکتر | کاربرد | مثال خروجی |
| Y | سال به صورت ۴ رقمی | 2026 |
| m | ماه به صورت ۲ رقمی (با صفر پیشرو) | 08 |
| d | روز از ماه به صورت ۲ رقمی | 14 |
| H | ساعت در فرمت ۲۴ ساعته | 17 |
| i | دقیقه (با صفر پیشرو) | 05 |
| s | ثانیه (با صفر پیشرو) | 59 |
۳. تابع time() و مفهوم Timestamp
در دنیای برنامهنویسی، زمان معمولاً با مفهومی به نام UNIX Timestamp ذخیره و محاسبه میشود. تایماستمپ، تعداد ثانیههای سپری شده از تاریخ ۱ ژانویه ۱۹۷۰ (ساعت 00:00:00 UTC) تا به این لحظه است. تابع time() زمان فعلی را به صورت تایماستمپ برمیگرداند.
$currentTime = time();
echo $currentTime;
// خروجی شبیه به: 1723625000
شما میتوانید این عدد را به عنوان پارامتر دوم به تابع date() پاس دهید تا یک زمان خاص را فرمتبندی کنید:
// نمایش تاریخ مربوط به یک هفته بعد
$nextWeek = time() + (7 * 24 * 60 * 60);
echo date("Y-m-d", $nextWeek);
۴. تابع strtotime(): تبدیل رشته به زمان
یکی از هوشمندانهترین توابع PHP برای کار با زمان، تابع strtotime() (String to Time) است. این تابع میتواند عبارات متنی قابل فهم برای انسان را به Timestamp تبدیل کند.
// زمان فردا
$tomorrow = strtotime("tomorrow");
echo date("Y/m/d", $tomorrow);
// یک هفته بعد
$nextWeek = strtotime("+1 week");
echo date("Y/m/d", $nextWeek);
// تبدیل یک تاریخ رشتهای خاص به تایماستمپ
$specificDate = strtotime("2025-10-15 10:00:00");
echo date("d-m-Y", $specificDate);
۵. رویکرد شیءگرا: کلاس DateTime
در نسخههای مدرن PHP، استفاده از رویکرد شیءگرا (OOP) برای مدیریت زمان به شدت توصیه میشود. کلاس DateTime امکانات بسیار جامعتر و دقیقتری را نسبت به توابع سنتی ارائه میدهد و از پیچیدگیهای محاسباتی میکاهد.
// ایجاد یک شیء از زمان فعلی
$date = new DateTime();
// نمایش تاریخ
echo $date->format('Y-m-d H:i:s');
echo "<br>";
// اضافه کردن ۵ روز به تاریخ فعلی
$date->modify('+5 days');
echo $date->format('Y-m-d');
نتیجهگیری
تسلط بر توابع تاریخ و زمان برای ایجاد برنامههای وب پویا و تعاملی ضروری است. خواه از روشهای سنتی مانند date() و strtotime() استفاده کنید و خواه به سراغ روشهای مدرن و شیءگرا مانند کلاس DateTime بروید، PHP ابزارهای لازم را برای رفع نیازهای شما فراهم کرده است. با استفاده صحیح از این توابع و مدیریت دقیق مناطق زمانی (Timezones)، میتوانید منطق زمانی پروژههای خود را در سایت پی اچ پی ساز به بینقصترین شکل ممکن پیادهسازی کنید.

بدون دیدگاه