آموزش رایگان PHP

آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)

1405/04/27 21:58 محراب حسن زاده
آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)

مقدمه

مدیریت تاریخ و زمان یکی از اساسی‌ترین نیازها در توسعه وب‌سایت‌ها و نرم‌افزارها است. از ثبت زمان ارسال یک پست گرفته تا محاسبه زمان انقضای تراکنش‌ها و زمان‌بندی کارهای مختلف، همه نیازمند ابزارهای دقیق برای مدیریت زمان هستند. زبان PHP ابزارهای بسیار قدرتمندی را هم در قالب توابع رویه‌ای (Procedural) و هم به صورت شیء‌گرا (Object-Oriented) برای این کار ارائه می‌دهد.

۱. تنظیم منطقه زمانی (Timezone) در PHP

قبل از کار با هرگونه تابع تاریخ و زمان در PHP، بسیار مهم است که منطقه زمانی یا Timezone سیستم خود را تنظیم کنید. در غیر این صورت، زمان‌ها بر اساس تنظیمات پیش‌فرض سرور (که معمولاً UTC است) نمایش داده می‌شوند.

برای تنظیم منطقه زمانی روی ساعت تهران، از تابع زیر استفاده می‌کنیم:


date_default_timezone_set('Asia/Tehran');

همچنین با استفاده از تابع date_default_timezone_get() می‌توانید منطقه زمانی فعلی سیستم را دریافت کنید.

۲. کار با تابع date() و فرمت‌های رایج آن

تابع date() پرکاربردترین تابع برای فرمت‌دهی تاریخ و زمان در PHP است. این تابع یک فرمت متنی را دریافت کرده و زمان فعلی (یا یک Timestamp مشخص) را بر اساس آن فرمت می‌کند.


// نمایش تاریخ امروز به صورت: 2023/10/24
echo date("Y/m/d");

// نمایش زمان فعلی به صورت: 15:30:45
echo date("H:i:s");

// ترکیب تاریخ و زمان با منطقه زمانی
echo date("Y-m-d H:i:s");

کاراکترهای فرمت‌دهی پرکاربرد:

  • Y: سال به صورت ۴ رقمی (مثال: 2023)
  • m: ماه به صورت ۲ رقمی با صفر پیش‌فرض (01 تا 12)
  • d: روز ماه به صورت ۲ رقمی با صفر پیش‌فرض (01 تا 31)
  • H: ساعت به صورت ۲۴ ساعته با صفر پیش‌فرض (00 تا 23)
  • h: ساعت به صورت ۱۲ ساعته با صفر پیش‌فرض (01 تا 12)
  • i: دقیقه با صفر پیش‌فرض (00 تا 59)
  • s: ثانیه با صفر پیش‌فرض (00 تا 59)
  • A: نمایش حروف بزرگ AM یا PM

۳. مفهوم Timestamp و تابع time()

برچسب زمانی یا Timestamp (مشخصاً Unix Timestamp) تعداد ثانیه‌های سپری شده از تاریخ ۱ ژانویه ۱۹۷۰ ساعت 00:00:00 UTC است. این عدد مستقل از منطقه‌های زمانی است و برای ذخیره‌سازی زمان در پایگاه داده بسیار مناسب است.


$currentTime = time();
echo $currentTime; // خروجی عددی شبیه به: 1698154245

// تبدیل Timestamp به تاریخ قابل خواندن برای انسان
echo date("Y-m-d H:i:s", $currentTime);

۴. تابع جادویی strtotime()

یکی از جالب‌ترین و کاربردی‌ترین توابع در PHP، تابع strtotime() است. این تابع عبارات متنی انگلیسی مربوط به زمان را گرفته و آن‌ها را به Timestamp تبدیل می‌کند.


echo strtotime("now"); // زمان فعلی
echo strtotime("tomorrow"); // زمان فردا در همین ساعت
echo strtotime("+3 days"); // سه روز آینده
echo strtotime("next Monday"); // دوشنبه هفته آینده
echo strtotime("last Friday"); // جمعه گذشته

۵. رویکرد شیء‌گرا: کار با کلاس DateTime

در PHP مدرن (نسخه‌های ۵.۲ به بعد و به ویژه PHP 7 و PHP 8)، توصیه اکید استفاده از کلاس‌های شیء‌گرا مانند DateTime است. این کلاس‌ها مدیریت تاریخ را بسیار ساده‌تر، تمیزتر و ایمن‌تر می‌کنند.

ساخت شیء DateTime:


// زمان فعلی
$date = new DateTime();

// یک زمان مشخص با منطقه زمانی خاص
$dateCustom = new DateTime('2023-12-25 08:00:00', new DateTimeZone('America/New_York'));

// نمایش فرمت‌شده
echo $dateCustom->format('Y-m-d H:i:s P');

محاسبات تاریخ با DateTime و DateInterval:

با استفاده از متدهای add و sub و کلاس DateInterval، می‌توانید به راحتی به تاریخ‌ها اضافه یا از آن‌ها کم کنید.


$date = new DateTime(); // امروز

// اضافه کردن ۱۰ روز به تاریخ فعلی (P = Period, 10D = 10 Days)
$date->add(new DateInterval('P10D'));
echo $date->format('Y-m-d');

// کم کردن ۲ ماه (P2M = 2 Months)
$date->sub(new DateInterval('P2M'));
echo $date->format('Y-m-d');

محاسبه اختلاف دو تاریخ (Diff):


$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-12-31');

$interval = $date1->diff($date2);

echo $interval->format('%R%a days'); // خروجی: +364 days

نتیجه‌گیری

استفاده از کلاس DateTime در پروژه‌های جدید و بزرگ به دلیل پشتیبانی عالی از منطقه‌های زمانی مختلف و قابلیت‌های شیء‌گرایی بالا پیشنهاد می‌شود. با این حال، استفاده از توابعی نظیر date() و strtotime() برای کارهای کوچک و سریع کماکان بسیار رایج و کاربردی است.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش استفاده از تگ‌های خاص HTML: تگ‌های کاربردی برای طراحی وب‌سایت
1402/05/22 23:53

آموزش استفاده از تگ‌های خاص HTML: تگ‌های کاربردی برای طراحی وب‌سایت

مطالعه بیشتر
تفاوت PHP با HTML، CSS و JavaScript؛ راهنمای جامع و ساده برای مبتدیان
1405/03/21 01:06

تفاوت PHP با HTML، CSS و JavaScript؛ راهنمای جامع و ساده برای مبتدیان

مطالعه بیشتر
آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر
1403/08/03 17:08

آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر

مطالعه بیشتر
کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius
1403/08/09 20:16

کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius

مطالعه بیشتر
آموزش توسعه و مدیریت پروژه‌های بزرگ در جاوا اسکریپت: آشنایی با ابزارها و فریم‌ورک‌های کاربردی
1403/08/04 19:43

آموزش توسعه و مدیریت پروژه‌های بزرگ در جاوا اسکریپت: آشنایی با ابزارها و فریم‌ورک‌های کاربردی

مطالعه بیشتر
آموزش استفاده از تگ‌های تصویری در HTML: نمایش و مدیریت تصاویر در صفحات وب
1402/05/29 20:53

آموزش استفاده از تگ‌های تصویری در HTML: نمایش و مدیریت تصاویر در صفحات وب

مطالعه بیشتر
مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی
1404/09/22 00:40

مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی

مطالعه بیشتر
مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1402/06/28 00:07

مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی
1404/09/29 20:53

Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی

مطالعه بیشتر
استفاده از overflow در CSS برای مدیریت محتوای اضافی: راهنمای کامل و کاربردی
1403/08/11 21:37

استفاده از overflow در CSS برای مدیریت محتوای اضافی: راهنمای کامل و کاربردی

مطالعه بیشتر
آموزش جامع عملگرهای مقایسه‌ای در PHP؛ بررسی تفاوت == و ===
1405/04/03 23:47

آموزش جامع عملگرهای مقایسه‌ای در PHP؛ بررسی تفاوت == و ===

مطالعه بیشتر
آموزش کامل دریافت اطلاعات فرم با متدهای GET و POST در PHP (با رعایت اصول امنیتی)
1405/04/27 22:06

آموزش کامل دریافت اطلاعات فرم با متدهای GET و POST در PHP (با رعایت اصول امنیتی)

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد