کد PHP ساختن جدول تاریخ و تقویم

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

تابع ساختن یک جدول تاریخ و تقویم یک ماهه

تابع ساختن جدول تقویم یک ماهه رو به این شکل خواهیم داشت . تابع build_calendar دو تا پارامتر ورودی می‌گیره که به ترتیب عدد ماه و سال رو نشون میده و در نهایت جدول مربوط به اون ماه رو بر می‌گردونه :

<?php
function build_calendar($month,$year) {
// Create array containing abbreviations of days of week.
$daysOfWeek = array('S','M','T','W','T','F','S');
// What is the first day of the month in question?
$firstDayOfMonth = mktime(0,0,0,$month,1,$year);
// How many days does this month contain?
$numberDays = date('t',$firstDayOfMonth);
// Retrieve some information about the first day of the
// month in question.
$dateComponents = getdate($firstDayOfMonth);
// What is the name of the month in question?
$monthName = $dateComponents['month'];
// What is the index value (0-6) of the first day of the
// month in question.
$dayOfWeek = $dateComponents['wday'];
// Create the table tag opener and day headers
$calendar = "<table class='calendar'>";
$calendar .= "<caption>$monthName $year</caption>";
$calendar .= "<tr>";
// Create the calendar headers
foreach($daysOfWeek as $day) {
$calendar .= "<th class='header'>$day</th>";
}
// Create the rest of the calendar
// Initiate the day counter, starting with the 1st.
$currentDay = 1;
$calendar .= "</tr><tr>";
// The variable $dayOfWeek is used to ensure that the calendar
// display consists of exactly 7 columns.
if ($dayOfWeek > 0) {
$calendar .= "<td colspan='$dayOfWeek'>&nbsp;</td>";
}
$month = str_pad($month, 2, "0", STR_PAD_LEFT);
while ($currentDay <= $numberDays) {
// Seventh column (Saturday) reached. Start a new row.
if ($dayOfWeek == 7) {
$dayOfWeek = 0;
$calendar .= "</tr><tr>";
}
$currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT);
$date = "$year-$month-$currentDayRel";
$calendar .= "<td class='day' rel='$date'>$currentDay</td>";
// Increment counters
$currentDay++;
$dayOfWeek++;
}
// Complete the row of the last week in month, if necessary
if ($dayOfWeek != 7) {
$remainingDays = 7 - $dayOfWeek;
$calendar .= "<td colspan='$remainingDays'>&nbsp;</td>";
}
$calendar .= "</tr>";
$calendar .= "</table>";
return $calendar;
}
?>

این تابع جدول ماه دریافتی رو در یک table بر می‌گردونه .

نحوه استفاده از تابع جدول تقویم

برای استفاده از این تابع کافیه عدد ماه و سال مورد نظر رو به اون بدید و خروجیش رو چاپ کنید . می‌تونید این دو عدد رو به عنوان پارامترهای get از طریق url هم دریافت کنید و در تابع استفاده کنید .

به طور مثال اگر جدول مربوط به اولین ماه سال 2000 رو رو بخواید به این شکل استفاده می‌کنید :

<?php
$m1y2000=build_calendar(1,2000);
echo $m1y2000;
?>

اگر بخواید جدول ماه کنونی رو چاپ کنید باید با استفاده از توابع php ماه و سال کنونی رو دریافت کنید و به تابع بدید . به این شکل :

<?php
$currentDate = getdate();
$month = $currentDate['mon'];
$year = $currentDate['year'];
echo build_calendar($month,$year);
?>

جدول چاپ شده هم دارای ویژگی class برابر با calendar هست که می‌تونید با css ظاهرش رو تغیر بدید .

 
ارسال دیدگاه
ما همه سوالات و دیدگاه ها رو می خونیم و پاسخ میدیم
۲۹ دیدگاه
فائزه جعفرپور ۳۰ آبان ۱۳۹۴، ۲۱:۲۶
سلام میشه لطف کنید نحوی اجراش رو هم بگین ؟
خیلی ضروریه من برای یکی تز درسام تو دانشگاه میخوام ولی نمیدونم چججوری اجراکنم این برنامه رو؟
وحید صالحی ۱۷ آذر ۱۳۹۴، ۱۰:۴۹
سوالتون رو در انجمن مطرح کنید
mahdizz ۰۵ مهر ۱۳۹۴، ۲۰:۳۷
با سلام و عرض ادب
اگه امکان داره آموزش ساخت همین تقویم رو هم با جاوا اسکریپت قرار بدید ممنون میشم.
با تشکر
علی ۲۱ بهمن ۱۳۹۲، ۱۳:۱۱
سلام
من نیاز به کدی دارم که تاریخ روز رو به صورت شمسی و میلادی و قمری نشون بده و در آخرمناسبت روز رو هم نمایش بده ممنون میشم فایلش رو برای دانلود و طرز استفاده ازش رو در سایت قرار بدید خیلی ممنون :?:
وحید صالحی ۲۹ بهمن ۱۳۹۲، ۱۴:۰۸
دوست عزیز گوگل کنید کدهای زیادی وجود داره...
ال جی ۲۰ آبان ۱۳۹۲، ۱۱:۵۵
هنوز تستش نکردم ولی ممنون و سپاسگزار. ایشالا نمره خوبی برای پایان ترم داشته باشه :D
طراحی سایت ۱۰ مهر ۱۳۹۲، ۱۶:۴۰
عااااااااااالی بود ممنون
درج آگهی رایگان ۰۳ مهر ۱۳۹۲، ۱۴:۳۱
ممنون
آموزش هاتون خیلی خیلی خوبه
somayehyari ۱۲ مرداد ۱۳۹۲، ۰۲:۱۹
باسلام و تشکر فراوان
من میخواهم صفحه اصلی که طراحی میکنم از کاربر یک یوزر و پسورد دریافت کند که با زدن دکمه ارسا ل درصورتیکه چنین کاربری با این پسورد در پایگاه داده موجود می باشد وارد صفحه بعدی شود و بتواند ازامکانات استفاده کند لطفا مرا در نوشتن چنین کدی راهنمایی کنید
با تشکر از لطف شما
محمدسینا معراجیان ۱۲ مرداد ۱۳۹۲، ۱۳:۵۳
چقدر با پی اچ پی آشنایی دارید؟سوالتون رو توی انجمن مطرح کنید حتما پاسختون رو میگرید
آرمان ۱۳ فروردین ۱۳۹۲، ۱۵:۵۵
مرسی از مدیران این سایت
محمّد حسن مهرآذر ۰۲ اسفند ۱۳۹۱، ۲۱:۰۸
سلام آقای آوندی باز هم یک سوال دیگه شما این صفحه رو یه نگاه بندازید می بینید که قسمت دانلود در هر پستی وجود دارد میخواستم بدونم آیا افزونه ای برای این کار وجود دارد؟
http://www.gameror.net/%DA%A9%D8%B1%DA%A9-%D8%A8%D8%A7%D8%B2%DB%8C-march-of-the-eagles/

با تشکر
لقمان آوند ۰۲ اسفند ۱۳۹۱، ۲۳:۲۹
میشه با شورتکد ها توی وردپرس میشه چنین چیزی درست کرد . باید بگردی ...
مثلا این پلاگینو ببین .
محمّد حسن مهرآذر ۰۱ اسفند ۱۳۹۱، ۲۰:۳۹
سلام آقای آوندی یه سوال دیگه داشتم میخواستم ببینم دامین در رتبه سایت تاثیر دارد؟
لقمان آوند ۰۱ اسفند ۱۳۹۱، ۲۳:۱۹
خبر ، ولی اگر دامین مرتبط با موضوع سایت داشته باشیداز لحاظ اعتبار و ارتباط می تونه موثر باشه و بهتره که اینطور باشه ...
محمّد حسن مهرآذر ۳۰ بهمن ۱۳۹۱، ۲۰:۵۹
سلام آقای آوندی ببخشید من میخواستم سایت بسازم ولی یه سوال دارم من اول میخوام وبلاگ بسازم بعد اون رو به وردپرس منتقل کنم من یه کتاب میخوندم میشد از بلاگفا منتقل شد به وردپرس ولی من بلاگفا نمیخوام میخواستم ببینم سیستم وبلاگدهی دیگه ای رو میشناسید که منتقل شدن به وردپرس آسان باشه من لوکس بلاگ رو میپسندم شما نظری ندارید؟ ببخشید از سوال کردن های پی در پی:smile:
لقمان آوند ۰۴ اسفند ۱۳۹۱، ۲۳:۲۳
متاسفانه چون خیلی وقته از این سیستم ها استفاده نکردم راهنمایی درستی نمی تونم بکنم .
php_beginner ۲۹ بهمن ۱۳۹۱، ۲۲:۴۳
سلام بسیار بسیار از اموزش هاتون متشکرم. عالیه حرف نداره
پویا ۱۲ بهمن ۱۳۹۱، ۱۵:۲۱
سلام خدمت آقای آوند.
من به مشکلی برخوردم.بنده اولین کدی که در پست موجود هست رو در یه فایل با نام index.php قرار دادم.وقتی در لوکال هاست این آدرس رو میزنم:
localhost/index.php هیچ چیزی رو نمایش نمیده.فایل رو هم در پوشه htdocs قرار دادم بدون قرار دادن در پوشه جانبی دیگه ای! آیا مشکل از کدهاست یا اینکه من باید چیز دیگه رو هم اضافه کنم؟
لقمان آوند ۱۲ بهمن ۱۳۹۱، ۱۶:۱۱
بزار تو یه پوشه . مثلا timeTable . کد اول رو بزار توی index.php توی اون پوشه و در آخر اون هم از یکی از کدهای بعدی (صدا زدن تابع) در انتهای index.php استفاده کن .
بعد برو به آدرس localhost/timeTable/index.php
سعید محمدی ۱۲ بهمن ۱۳۹۱، ۱۳:۳۵
ممنون
ariyadad ۱۲ بهمن ۱۳۹۱، ۱۰:۴۲
آقا لقمان خلی ازت ممنوم , چون هر وقت اومدم توی سایتت
با مطالب داغ و واقعا زیبات شگفت زده ام کردی!! :grin:
لقمان آوند ۱۲ بهمن ۱۳۹۱، ۱۶:۰۹
لطف داری شما ...
m.zarein ۱۰ بهمن ۱۳۹۱، ۱۶:۲۶
ممنون بابت مطالب خوبتون.........
توی جشنواره هم امتیاز دادم...... :oops:
لقمان آوند ۱۰ بهمن ۱۳۹۱، ۱۷:۱۶
متشکرم
لطف کردید ...