تقویم در PHP: راهنمای جامع

php calendar guide
20 آبان 1403

سلام به دوستان برنامه‌نویس! امروز قصد داریم در مورد یکی از قابلیت‌های جالب و کاربردی زبان PHP صحبت کنیم: تقویم. بررسی این موضوع نه تنها برای کسانی که تازه با برنامه‌نویسی وب آشنا شده‌اند مفید است، بلکه برای حرفه‌ای‌ها نیز می‌تواند کاربردی و آموزنده باشد.

همانطور که می‌دانید، تقویم‌ها به عنوان بخشی از بسیاری از اپلیکیشن‌ها و وب‌سایت‌ها استفاده می‌شوند. برنامه‌ریزی، رزرو، و مدیریت زمان، همگی بدون تقویم معنایی نخواهند داشت. با استفاده از PHP، می‌توان یک تقویم ساده و کاربرپسند طراحی کرد که به کاربران اجازه می‌دهد تاریخ‌ها و رویدادهای مهم را مشاهده کنند.

در این مطلب، به یک روش ساده و قابل فهم برای ساخت یک تقویم در PHP اشاره می‌کنیم. اولین قدم برای این کار آشنایی با توابع مختلف PHP برای مدیریت تاریخ و زمان است. سپس، قدم به قدم یک تقویم ساده را ایجاد خواهیم کرد.

یکی از توابع پرکاربرد PHP برای مدیریت تاریخ و زمان، تابع date() است. این تابع به شما اجازه می‌دهد تا اطلاعاتی مانند روز، ماه، سال و ساعت را بدست آورید. برای مثال:


<?php
    $date = date('Y-m-d'); // فرمت تاریخ: سال-ماه-روز
    echo "Today's date is: " . $date;
?>

در این قطعه کد، ما از تابع date() استفاده می‌کنیم تا تاریخ امروز را به فرمت Y-m-d (سال-ماه-روز) دریافت کنیم و آن را چاپ کنیم.

حال، یک گام جلوتر می‌رویم و یک تقویم ساده ایجاد می‌کنیم. به کد زیر توجه کنید:


<?php
function build_calendar($month, $year) {
    // اول روز ماه را بدست می‌آوریم
    $first_day_of_month = mktime(0, 0, 0, $month, 1, $year);
    $days_in_month = date('t', $first_day_of_month);
    $date_components = getdate($first_day_of_month);
    $month_name = $date_components['month'];
    $day_of_week = $date_components['wday'];

    // شروع ساخت HTML تقویم
    $calendar = "<table>\r\n";
    $calendar .= "<caption>$month_name $year</caption>\r\n";
    $calendar .= "<tr>\r\n";

    // روزهای هفته
    $days_of_week = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
    foreach($days_of_week as $day) {
        $calendar .= "<th>$day</th>\r\n";
    }
    $calendar .= "</tr><tr>\r\n";

    // تنظیم موقعیت روز اول
    if ($day_of_week > 0) {
        for($k=0;$k<$day_of_week;$k++) {
            $calendar .= "<td></td>\r\n";
        }
    }

    $current_day = 1;

    // تکمیل روزهای ماه
    while ($current_day <= $days_in_month) {
        if ($day_of_week == 7) {
            $day_of_week = 0;
            $calendar .= "</tr><tr>\r\n";
        }

        $calendar .= "<td>$current_day</td>\r\n";
        $current_day++;
        $day_of_week++;
    }

    if ($day_of_week != 7) {
        $remaining_days = 7 - $day_of_week;
        for($i=0;$i<$remaining_days;$i++) {
            $calendar .= "<td></td>\r\n";
        }
    }

    $calendar .= "</tr>\r\n";
    $calendar .= "</table>\r\n";

    return $calendar;
}

// نمایش تقویم برای ماه جاری
echo build_calendar(date('m'), date('Y'));
?>

شرح کد:

<?php : آغاز بلوک کد PHP
function build_calendar($month, $year) : تعریف تابعی برای ساخت تقویم
$first_day_of_month = mktime(0, 0, 0, $month, 1, $year); : بدست آوردن اولین روز ماه
$days_in_month = date('t', $first_day_of_month); : تعداد روزهای ماه را بدست می‌آورد
$date_components = getdate($first_day_of_month); : جزئیات تاریخ اولین روز ماه
$month_name = $date_components['month']; : نام ماه
$day_of_week = $date_components['wday']; : روز هفته اولین روز ماه
$calendar = "<table>\r\n"; : شروع HTML تقویم
$calendar .= "<caption>$month_name $year</caption>\r\n"; : اضافه کردن عنوان به تقویم
$calendar .= "<tr>\r\n"; : شروع یک ردیف جدید
$days_of_week = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'); : تعریف روزهای هفته
foreach($days_of_week as $day) : حلقه برای نمایش روزهای هفته
$current_day = 1; : شروع شمارش روزهای ماه
while ($current_day <= $days_in_month) : حلقه برای نمایش روزهای ماه
?> : پایان بلوک کد PHP

سوالات متداول

؟

چگونه می‌توانم تاریخ امروز را با PHP بدست آورم؟

؟

چه توابعی در PHP برای مدیریت تاریخ و زمان وجود دارد؟

؟

چگونه می‌توانم یک تقویم ساده بسازم؟

؟

چگونه می‌توانم روزهای هفته را به نمایش بگذارم؟