سلام به دوستان برنامهنویس! امروز قصد داریم در مورد یکی از قابلیتهای جالب و کاربردی زبان 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
: آغاز بلوک کد PHPfunction 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