[
[
'date'=>'2010-01-01',
'hours'=>'3'
],
[
'date'=>'2012-01-01',
'hours'=>'1'
],
[
'date'=>'2010-01-01',
'hours'=>''
],
]
(date='2019-03-12' AND user_id=14)
после чего implode(' OR ', $array)
чтобы получить готовое WHERE
выражение."12.03.19".replace(/(\d+)\.(\d+)\.(\d+)/, "20$3-$2-$1");
//"2019-03-12"
new Date("12.03.19".replace(/(\d+)\.(\d+)\.(\d+)/, "20$3-$2-$1"));
//Tue Mar 12 2019 03:00:00 GMT+0300 (Москва, стандартное время)
new Date("12.03.19".replace(/(\d+)\.(\d+)\.(\d+)/, "20$3-$2-$1")).getTime()
//1552348800000
.items-left
, а проверяете количество .items-right
. Думали, что класс сам собой заменится? Нет, так не будет. .red {
background: red;
}
$('.table').on('change', function(e) {
const $tr = $(e.target).closest('tr');
const ajaxdata = $tr.find('.ajaxdata').val();
const subcat = $tr.find('.subcat').val();
$tr.toggleClass('red', ajaxdata === 'none' && subcat === 'none');
}).find('tr').change();
// или
const table = document.querySelector('table');
table.addEventListener('change', e => {
const tr = e.target.closest('tr');
const ajaxdata = tr.querySelector('.ajaxdata').value;
const subcat = tr.querySelector('.subcat').value;
tr.classList.toggle('red', ajaxdata === 'none' && subcat === 'none');
})
table.querySelectorAll('tr').forEach(n => {
n.dispatchEvent(new Event('change', { bubbles: true }));
});
if(document.documentElement.clientWidth < 768)
{
$().fancybox({
selector : '[data-fancybox="images"]',
toolbar : true,
loop : true,
buttons : [
'slideShow',
'fullScreen',
'share',
'zoom',
'close'
],
thumbs : {
autoStart : true,
parentEl : '.fancybox-container',
axis : 'x'
},
});
} else {
$().fancybox({
selector : '[data-fancybox="images"]',
toolbar : true,
loop : true,
buttons : [
'slideShow',
'fullScreen',
'thumbs',
'share',
'zoom',
'close'
],
thumbs : {
autoStart : true,
parentEl : '.fancybox-container',
axis : 'x'
},
});
}
window.onresize = function(event) {
...
};
tags.filter(n => active.some(m => m.name === n.name))
// или
active.flatMap(function(n) {
return this.get(n.name) || [];
}, new Map(tags.map(n => [ n.name, n ])))
function intersection(data1, data2, key = n => n) {
const getKey = key instanceof Function ? key : n => n[key];
const keys = new Set(Array.from(data2, getKey));
return Array.prototype.filter.call(data1, n => keys.has(getKey(n)));
}
// ваш случай
intersection(tags, active, 'name')
// есть и другие варианты применения
intersection([ 69, 187, 666 ], [ 0, 1, 2, 3, 187 ]) // [187]
intersection('aBCdE', 'bDfHj', n => n.toLowerCase()) // ['B', 'd']