// Два момента, переключающих расписание
var s18 = getNextMoment( 0, 18); // Sunday 18:00
var f12 = getNextMoment( 5, 12); // Friday 12:00
function getNextMoment( day, hour) {
var D = new Date(), dayDiff;
D.setHours(hour);
D.setMinutes(0);
D.setSeconds(0);
dayDiff = day - D.getDay();
D.setDate( D.getDate() + dayDiff + ( dayDiff < 0 ? 7 : 0));
return D;
}
if( f12 < s18) { // сначала наступит Пятница 12.00
// Режим ожидания
} else { // сначала наступит Воскресенье 18
if( new Date().getHours() < 6) {
// Ночной
} else {
// Дневной
}
}
<frame>
на одной странице – у меня получается (FireFox, OS X) (попробовать)/**
* Из строки времени в формате HH:MM:SS
* делает объект Date
* с ближайшим, после текущего момента, таким временем.
* @param String строка времени
* @return Date Object
*/
function parseTime(s) {
var now = new Date(), D = new Date(now.getTime()), HMS = s.split(':');
if( HMS.length !== 3) throw({message:"неверный формат времени"});
HMS = HMS.map(function(t){return parseInt(t)}); // перевести строки в целые
D.setHours(HMS[0]);
D.setMinutes(HMS[1]);
D.setSeconds(HMS[2]);
if( D < now) D.setDate( D.getDate() + 1);
return D;
}
/**
* добивает число нулями до двух позиций.
* 3 -> 03
* 13 -> 13
*/
function pad(n, len, char) {
var s = n.toString(10);
char = char || '0';
len = len || 2;
if( s.length >= len) return s;
return (Array(1+len).join(char) + n).slice(-len);
}
/**
* Выводит в заданный DOM-элемент время,
* оставшееся до даты-времени в объекте toDate
*/
function countdown( toDate, el) {
var diff = toDate.getTime() - new Date().getTime()
, H
, M
, S = Math.floor(diff/1000)
;
if( S <= 0) { // время прошло
el.innerText = "--:--:-- Ой, всё!";
return;
}
H = Math.floor(S/3600);
S = S % 3600;
M = Math.floor(S/60);
S = S % 60;
el.innerText = '' +pad(H) +':' +pad(M) +':' +pad(S);
setTimeout( countdown.bind(this, toDate, el), 111);
}
countdown(
parseTime('15:00:00'),
document.querySelector('h1.question__title')
);
<?php
$id = 2743; // ID заданной рубрики
$n = 5; // количество выводимых записей
$recent = new WP_Query("cat=$id&showposts=$n");
$sum = 0;
while($recent->have_posts()) {
$recent->the_post();
if( get_field("result") === 'Win') {
$value = get_field('koff') * get_field('summa');
$sum += $value;
$out = sprintf( '%01.2f', $value); // 1.23
} elseif( get_field("result") === 'open') {
$out = "…"; // троеточие
} else {
$out = '0.00';
}
echo $out . ' рублей.';
}
printf( "<p>Сумма: %01.2f рублей.</p>", $sum);
skewY
и translateY
:every()
вернёт true
только, когда по всем элементам выполнено условие.some()
вернёт true
, как только хотя бы в одном встретится выполнение условия.const availableVersions = versions.filter(
version => !!~item.version_ids.indexOf( version.id )
);
!!~
из любого значения, кроме -1
, вернёт true
, а для -1
вернёт false
.