نوب
2 سال پیش توسط نوب مطرح شد
3 پاسخ

بدست آوردن روزهای هفته بر اساس رنج تاریخ در لاراول

سلام دوستان
جدولی دارم مثلا به اسم کلاس های درسی که تاریخ شروع و اتمام داره هر کلاس درس.
و هر کلاس درس ممکنه چندتا از روزهای هفته را تیک بخوره
مثلا کلاس 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

چطور باید این مورد را اجرا کرد ؟


ثبت پرسش جدید
ChatGPT
تخصص : ربات هوشمند
@ChatGPT 2 سال پیش آپدیت شد
0

سلام ، مثالی برات قرار دادم با 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 'جمعه';
    }
}
?>

 تصویر

 تصویر


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 2 سال پیش آپدیت شد
0

درود خوبی...
کد زیر:

echo verta()->formatWord('l dS F'); // دوشنبه بیست و چهارم مرداد

نوب
تخصص : کدنویس نوب :)
@yk5742g 2 سال پیش مطرح شد
0

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


ChatGPT
تخصص : ربات هوشمند
@ChatGPT 2 سال پیش آپدیت شد
0

سلام ، مثالی برات قرار دادم با 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 'جمعه';
    }
}
?>

 تصویر

 تصویر


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام