2

尴尬的是我需要一个小算法

我正在帮助一个网站,其中 gif B 在 7 月 1 日显示,C 在 3 日显示,A 在 5 日显示。然后在 7 号再次 b 以此类推 - a、b、c 每隔一天早上 8 点改变一次

那么如何使用一个简单的算法使这个脚本返回 0、1 或 2,具体取决于自 7 月 1 日以来的天数

http://jsfiddle.net/mplungjan/T2Tjh/

var startDate = new Date(2012,6,1,8,0,0); 
var pics = ["b.gif","c.gif","a.gif"];
var aDay = 24*60*60*1000;
function getDateDiff(startDate,endDate) {
  var diff = endDate.getTime() - startDate.getTime();
  return Math.round(diff/aDay);
}
document.write('<br/>'+getDateDiff(startDate,new Date()));
4

2 回答 2

9

试试这个:

var startDate = new Date(2012, 6, 1, 8, 0, 0);
var pics = ["b.gif", "c.gif", "a.gif"];
var aDay = 24 * 60 * 60 * 1000;

function getDateDiff(startDate, endDate) {
    var diff = endDate.getTime() - startDate.getTime();
    return Math.round(diff / aDay);
}
document.write('<br/>' + pics[Math.floor(getDateDiff(startDate, new Date()) / 2) % 3]);
于 2012-07-11T19:01:09.193 回答
-2

您需要在此处使用模运算符

document.write('<br/>'+getDateDiff(startDate,new Date())%3);
于 2012-07-11T19:01:09.143 回答