Kalendar - Keyingi bog'laning

Shuning uchun hozirda ushbu taqvim sifatida http://davidwalsh.name/php-calendar dan foydalanganman. kelgusi oyga «keyingi»/«avvalgi» havolasini qo'shishning qiyinchiliklarini boshdan kechiraman ... har qanday yordam katta minnatdor bo'ladi!

1
Ko'proq harakat qiling. Nima bo'lganini tushunishga harakat qiling va kerakli xususiyatlarni ishga soling.
qo'shib qo'ydi muallif TJHeuvel, manba

1 javoblar

Taqvimni chizish funktsiyasi bo'lgani uchun

function draw_calendar($month,$year){

oldingi/avvalgi havolalarda, masalan, $ month va $ year

/calendar.php?month=12&year=2011

Keyinchalik bunday ma'lumotni bosish orqali ushbu ma'lumot $ _ GET da mavjud. Siz o'qimagan ma'lumotni xohlamaysiz, shuning uchun siz buni taqvim yozuvingizning yuqori qismiga keltirasiz:

$input = filter_input_array(
    INPUT_GET,
    array(
        'month' => array(
            'filter'    => FILTER_VALIDATE_INT,
            'options'   => array('min_range' => 1, 'max_range' => 12)
        ),
        'year' => array(
            'filter'    => FILTER_VALIDATE_INT,
            'options'   => array('min_range' => 2010, 'max_range' => 2015)
        )
    )
);

Filtr vazifasi 2010 va 2015 yillar oralig'idagi 1 va 12 oylik va bir yil davomida bir oyga ega bo'lishimizga ishonch hosil qiladi (mos ravishda moslashtiring yoki mos keladigan variantlarni o'chiring). O'tkazilgan raqamlar ushbu oraliqda bo'lmasa (yoki hech qanday aloqa hali tıklanmadıysa), ular uchun xato qabul qilamiz, demak, biz oqilona standartlarni, masalan.

$input['year']  = $input['year'] ?: date('Y');
$input['month'] = $input['month'] ?: date('n');

Bu yoki skriptga kiritilgan joriy qiymatlardan foydalaniladi, yoki noto'g'ri qadriyatlar bo'lsa yilni va/yoki oyni joriy yil va/yoki oyga sozlang.

Keling, taqvim tuzing:

echo draw_calendar($input['month'], $input['year']);

Keyingi/avvalgi havolada siz oyni 12 yoki 1da qo'lda tekshirishingiz mumkin, so'ngra yilni ortib yoki kamaytirasiz yoki DayTime obyektini ishlatishingiz mumkin

$dateTime = new DateTime;
$dateTime->setDate($input['year'], $input['month'], 1));
printf(
    'Next' .
    'Previous',
    $dateTime->modify('-1 month')->format('n'),
    $dateTime->format('Y'),
    $dateTime->modify('+2 month')->format('n'),
    $dateTime->format('Y')
);

demo (biroz qisqartirilgan)

Yana bir variant joriy oyni va yilni sessiyada saqlash va undan keyin yil va oysiz keyingi/avvalgi aloqalarni saqlash, aksincha, oldinga va orqaga ketish uchun +1 va -1 kabi narsalarni saqlashdir. Ammo keyin siz aniq bir oyga o'tish uchun to'g'ridan-to'g'ri yo'lingiz yo'q.

Va buning hammasi shu.

1
qo'shib qo'ydi
Ha, rahmat. qattiq. boshqa kichik harflarni tahrirlashdan bexabardirsiz
qo'shib qo'ydi muallif Gordon, manba
INPUT_GET dan keyin vergul qoldirilganmisiz?
qo'shib qo'ydi muallif Jared Farrish, manba
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin