دوره‌ها / آموزش جامع PHP (از صفر تا استادی) / تاریخ و زمان (PHP Date and Time)

تاریخ و زمان (PHP Date and Time)

30 دقیقه Article

تاریخ و زمان: مدیریتِ لحظه‌ها در PHP ⏳📅

یکی از پرتکرارترین کارها در وب، مدیریتِ زمان است؛ از ثبتِ زمانِ انتشارِ پست تا محاسبه‌یِ انقضایِ یک تخفیف. PHP ابزارهایِ بسیار دقیقی برای این کار دارد.

۱. تابعِ سنتی date()

این تابع یک فرمتِ متنی را برمی‌گرداند. کدهایِ فرمت مثل Y برای سال، m برای ماه و d برای روز استفاده می‌شوند.

{code_block('echo date("Y-m-d H:i:s"); // نمایش تاریخ و زمان فعلی')}

۲. کار با Timezone (منطقه زمانی)

به صورتِ پیش‌فرض، سرور ممکن است رویِ زمانِ جهانی (UTC) تنظیم شده باشد. برایِ تنظیمِ زمان رویِ ایران:

{code_block('date_default_timezone_set("Asia/Tehran");')}

۳. ساختِ زمانِ خاص با mktime()

این تابع برچسبِ زمانیِ یونیکس (Unix Timestamp) را برایِ یک تاریخِ خاص تولید می‌کند که برایِ مقایسه‌یِ دو زمان با هم عالی است.

Unix Timestamp: تعدادِ ثانیه‌هایی است که از اول ژانویه ۱۹۷۰ تا کنون گذشته است. این یک عددِ صحیحِ بزرگ است که مستقل از منطقه زمانی است.

تبدیلِ متن به تاریخ (strtotime):

یکی از جادویی‌ترین توابعِ PHP که می‌تواند جملاتِ انگلیسی را بفهمد:

{code_block('$d = strtotime("next Saturday");\necho date("Y-m-d", $d);')}
شروعِ مدرن: در پروژه‌هایِ جدید، از کلاسِ DateTime استفاده کنید. این کلاس شیءگرا است و کار با بازه‌هایِ زمانی (Intervals) را بسیار ساده‌تر و دقیق‌تر می‌کند.
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: مهندسی پیشرفته و امنیت در PHP 🐘⚙️

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

۱. بهینه‌سازی I/O و بافرینگ

در هنگامِ کار با فایل‌هایِ حجیم، هرگز کلِ فایل را به یکباره در حافظه (RAM) بارگذاری نکنید. استفاده از Streams و توابعِ fopen/fgets به شما اجازه می‌دهد فایل را خط به خط پردازش کنید که باعث می‌شود مصرفِ حافظه همیشه در کمترین سطحِ ممکن باقی بماند.

۲. امنیتِ نشست‌ها (Session Security)

مهم‌ترین خطر در مدیریتِ کاربران، Session Hijacking است. همیشه بعد از لاگین کردنِ کاربر، از session_regenerate_id(true) استفاده کنید تا شناسه‌یِ نشستِ قبلی باطل شود. همچنین فلگ‌هایِ HttpOnly و Secure را برای کوکی‌ها فعال کنید.

۳. استانداردهایِ مدرن و Autoloading

در پروژه‌هایِ بزرگ، استفاده از include دستی فاجعه‌بار است. استانداردِ PSR-4 و استفاده از Composer به شما اجازه می‌دهد کلاس‌ها را فقط در زمانی که واقعاً نیاز هستند بارگذاری کنید (Lazy Loading)، که سرعتِ لود شدنِ کلِ اپلیکیشن را به شدت بالا می‌برد.

نکته استراتژیک: به جایِ استفاده از توابعِ سنتی، سعی کنید به سمتِ Object-Oriented Programming (OOP) حرکت کنید. اکثرِ کتابخانه‌هایِ پیشرفته‌یِ PHP مثل DateTime و PDO از این پارادایم استفاده می‌کنند.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

نمایش سالِ فعلی Easy
سوال تمرین

با استفاده از تابعِ date()، فقط سالِ فعلی را با استفاده از کاراکتر Y چاپ کنید.

پاسخ تمرین
PHP
<?php
echo date("Y");
?>

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.