سلام دوستان
جدولی دارم مثلا به اسم کلاس های درسی که تاریخ شروع و اتمام داره هر کلاس درس.
و هر کلاس درس ممکنه چندتا از روزهای هفته را تیک بخوره
مثلا کلاس A روزهای 2شنبه و چهارشنبه
کلاس B روزهای شنبه و سه شنبه و پنجشنبه
خب رنج تاریخ به صورت timestamp ذخیره میکنم میلادی
میخوام با پکیج verta ببینم که مثلا اگر رنج تاریخ کلاس از 10/3/1401 تا 12/4/1401 بود ، روزهای رگزاری هر کلاس چه تاریخ هایی و چه روزهایی میشه
مثلا :
کلاس A
2شنبه 12/3/1401 - 2شنبه 19/3/1401 - 2شنبه 26/3/1401
4شنبه 14/3/1401 - 2شنبه 21/3/1401 - 2شنبه 28/3/1401
چطور باید این مورد را اجرا کرد ؟
سلام ، مثالی برات قرار دادم با php خام هست، بصورت دستی پکیج Morilog\Jalali رو با کمپوز نصب کردم
این کد بازده زمانی بین دو تاریخ رو برات میگیره و بهت روزهای هفته و تاریخ هاشون رو میده، دیگه مابقی رو خودت با اینکه پروفایلت رو چک کردم مطمئنم میدونی.
<?php
require_once 'vendor/autoload.php';
use Morilog\Jalali\Jalalian;
// تاریخ شروع
$start_date = Jalalian::fromFormat('Y/m/d', '1402/01/01')->toCarbon();
// تاریخ پایان
$end_date = Jalalian::fromFormat('Y/m/d', '1402/01/31')->toCarbon();
// ساخت جدول
$table = "<table><thead><tr><th>روز هفته</th><th>تاریخ</th><th>نام روز</th></tr></thead><tbody>";
// حلقه برای گرفتن تاریخهای بین دو تاریخ شمسی
while ($start_date <= $end_date) {
// تبدیل تاریخ میلادی به شمسی
$jdate = Jalalian::fromCarbon($start_date);
// اضافه کردن سطر به جدول
$table .= "<tr><td>" . $jdate->getDayOfWeek() . "</td><td>" . $jdate->format('Y/m/d') . "</td><td>" . getDayName($jdate->getDayOfWeek()) . "</td></tr>";
// افزایش تاریخ به روز بعدی
$start_date->addDay();
}
// بستن جدول
$table .= "</tbody></table>";
echo $table;
function getDayName($day_of_week){
switch ($day_of_week){
case 0:
return 'شنبه';
case 1:
return 'یکشنبه';
case 2:
return 'دوشنبه';
case 3:
return 'سهشنبه';
case 4:
return 'چهارشنبه';
case 5:
return 'پنجشنبه';
case 6:
return 'جمعه';
}
}
?>
@endworld
سلام
نگرفتی چی شد :D
من میخوام سیستم خودش بفهمه توی اون رنج تاریخ شروع و پایان چندتا دوشنبه وجود داره یا چهارشنبه و ...
و اینکه اون روزها تاریخاشون چی هست
سلام ، مثالی برات قرار دادم با php خام هست، بصورت دستی پکیج Morilog\Jalali رو با کمپوز نصب کردم
این کد بازده زمانی بین دو تاریخ رو برات میگیره و بهت روزهای هفته و تاریخ هاشون رو میده، دیگه مابقی رو خودت با اینکه پروفایلت رو چک کردم مطمئنم میدونی.
<?php
require_once 'vendor/autoload.php';
use Morilog\Jalali\Jalalian;
// تاریخ شروع
$start_date = Jalalian::fromFormat('Y/m/d', '1402/01/01')->toCarbon();
// تاریخ پایان
$end_date = Jalalian::fromFormat('Y/m/d', '1402/01/31')->toCarbon();
// ساخت جدول
$table = "<table><thead><tr><th>روز هفته</th><th>تاریخ</th><th>نام روز</th></tr></thead><tbody>";
// حلقه برای گرفتن تاریخهای بین دو تاریخ شمسی
while ($start_date <= $end_date) {
// تبدیل تاریخ میلادی به شمسی
$jdate = Jalalian::fromCarbon($start_date);
// اضافه کردن سطر به جدول
$table .= "<tr><td>" . $jdate->getDayOfWeek() . "</td><td>" . $jdate->format('Y/m/d') . "</td><td>" . getDayName($jdate->getDayOfWeek()) . "</td></tr>";
// افزایش تاریخ به روز بعدی
$start_date->addDay();
}
// بستن جدول
$table .= "</tbody></table>";
echo $table;
function getDayName($day_of_week){
switch ($day_of_week){
case 0:
return 'شنبه';
case 1:
return 'یکشنبه';
case 2:
return 'دوشنبه';
case 3:
return 'سهشنبه';
case 4:
return 'چهارشنبه';
case 5:
return 'پنجشنبه';
case 6:
return 'جمعه';
}
}
?>
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟