我正在尝试创建一个每周倒数计时器。
我有一个弹出窗口,设置为仅在周五,周六和周日出现。
我需要一个jQuery计时器,它从星期五00:00开始,到星期日24:00结束,每周都会工作。
我在这里找到了这个jsfiddle - https://jsfiddle.net/cwqxzm6o/151/
function plural(s, i) {
return i + ' ' + (i > 1 ? s + 's' : s);
}
function sundayDelta(offset) {
// offset is in hours, so convert to miliseconds
offset = offset ? offset * 60 * 60 * 1000 : 0;
var now = new Date(new Date().getTime() + offset);
var days = 7 - now.getDay() || 7;
var hours = 24 - now.getHours();
var minutes = now.getMinutes() - 00 ;
var seconds = now.getSeconds()- 00;
if (hours < 0){
days=days-1;
}
var positiveHours= -hours>0 ? 24-(-hours) : hours;
return [plural('day', days),
plural('hour', positiveHours),
plural('minute', minutes),
plural('second', seconds)].join(' ');
}
// Save reference to the DIV
$refresh = $('#refresh');
$refresh.text('This page will refresh in ' + sundayDelta());
// Update DIV contents every second
setInterval(function() {
$refresh.text('This page will refresh in ' + sundayDelta());
}, 1000);
然而,当我将我的一天改为星期日时,倒计时会进入“7天24小时等”,应该说“0天,24小时等”
有人可以租赁我的痛苦并给我一个更新的小提琴吗?
答案 0 :(得分:0)
如果您想在白天等于7且小时等于24时刷新页面,则必须使用 location.reload()进行刷新。 只需将我们的代码更改为
即可 function plural(s, i) {
return i + ' ' + (i > 1 ? s + 's' : s);
}
function reloadPage(){
location.reload();
}
function sundayDelta(offset) {
// offset is in hours, so convert to miliseconds
offset = offset ? offset * 60 * 60 * 1000 : 0;
var now = new Date(new Date().getTime() + offset);
var days = 7 - now.getDay() || 7;
var hours = 24 - now.getHours();
var minutes = 60 - now.getMinutes();
var seconds = 60 - now.getSeconds();
if(now.getDay() == 7 && now.getHours() == 24){
reloadPage();
}
return [plural('day', days),
plural('hour', hours),
plural('minute', minutes),
plural('second', seconds)].join(' ');
}
// Save reference to the DIV
$refresh = $('#refresh');
$refresh.text('This page will refresh in ' + sundayDelta());
// Update DIV contents every second
setInterval(function() {
$refresh.text('This page will refresh in ' + sundayDelta());
}, 1000);
你可以在这里查看https://jsfiddle.net/Bibhudatta_sahoo/cwqxzm6o/153/ 它将重新加载您的页面并重置您的倒计时。
答案 1 :(得分:0)
我很确定这是因为days
在星期日返回零,所以你需要坚持测试if awk -F, '{ for(i=1;i<=NF;i+=2) if($i!="") system("touch FILE_"$i"_"$(i+1)".txt") }' input
是否等于零。目前你的数学运算是7 - 0所以返回7。
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay