( function( blocks, element, blockEditor ) {
let el = element.createElement;
let InnerBlocks = blockEditor.InnerBlocks;
blocks.registerBlockType( 'gutenberg-custom-block/section', {
title: 'Section',
description: 'section description',
category: 'layout',
keywords: 'section',
icon: {
background: '#7e70af',
foreground: '#fff',
src: 'book-alt'
},
edit: function( props ) {
return el(
'section',
{ className: props.className},
el( InnerBlocks )
);
},
save: function( props ) {
return el(
'section',
{ className: props.className },
el( InnerBlocks.Content )
);
},
} );
} (
window.wp.blocks,
window.wp.element,
window.wp.blockEditor,
) );
<section class="wp-block-gutenberg-custom-block-section">
<!-- ТУТ ВЛОЖЕННЫЕ БЛОКИ -->
</section>
const li = Array.prototype.filter.call(
document.querySelector('ul').children,
function(n) {
return this.every(([ k, v ]) => v === n.querySelector(`.${k}`).innerText);
},
Object.entries(items)
);
const li = [];
COLLECT_LI:
for (const n of document.querySelectorAll('li')) {
for (const k in items) {
if (Object.hasOwn(items, k) && items[k] !== n.querySelector('.' + k).textContent) {
continue COLLECT_LI;
}
}
li.push(n);
}
Сформулируйте решение по шагам, как бы вы считали стоимость без написания кода, например самостоятельно?
период который ввёл пользователь это некое кол-во дней
проходим в цикле по каждому дню и проверяем в какой диапазон дат он входит
в зависимости от этого узнаем стоимсоть каждого дня и эту стоимость суммируем
на выходе получаем итоговую цену
$time = new DateTime('2018-08-07 10:30:00');// начало отсчёта
$time_off = new DateTime('2018-08-22 12:30:00');// конец отсчёта
$result = $time->diff($time_off);
echo "Между датами {$result->d} дн. {$result->h} час. {$result->i} мин.";
/**
* Предполагается, что dateStart <= dateEnd. Если это не гарантируется, нужно их привести к такому виду внутри функции.
*/
function getIntersectDays(DateTime $dateStart1, DateTime $dateEnd1, DateTime $dateStart2, DateTime $dateEnd2) : int {
$intersectionEnd = min($dateEnd1, $dateEnd2);
$intersectionStart = max($dateStart1, $dateStart2);
if ($intersectionStart >= $intersectionEnd) return 0;
return (int)$intersectionStart->diff($intersectionEnd)->format('%a');
}