使用HTML和Javascript每天每天显示消息,直到消息结束

时间:2014-12-01 04:49:14

标签: javascript html

我有以下代码每天显示一条消息,

<!doctype html>
<html>

<head>

<script type="text/javascript">

var msg = new Array();
Stamp = new Date();
today = Stamp.getDate();

msg[1] = "msg 1";
msg[2] = "msg 2";
msg[3] = "msg 3";
msg[4] = "msg 4";
msg[5] = "msg 5";
msg[6] = "msg 6";
msg[7] = "msg 7";
msg[8] = "msg 8";
msg[9] = "msg 9";
msg[10] = "msg 10";
msg[11] = "msg 11";
msg[12] = "msg 12";
msg[13] = "msg 13";
msg[14] = "msg 14";
msg[15] = "msg 15";
msg[16] = "msg 16";
msg[17] = "msg 17";
msg[18] = "msg 18";
msg[19] = "msg 19";
msg[20] = "msg 20";
msg[21] = "msg 21";
msg[22] = "msg 22";
msg[23] = "msg 23";
msg[24] = "msg 24";
msg[25] = "msg 25";
msg[26] = "msg 26";
msg[27] = "msg 27";
msg[28] = "msg 28";
msg[29] = "msg 29";
msg[30] = "msg 30";
msg[31] = "msg 31";
msg[32] = "msg 32";
msg[33] = "msg 33";
msg[34] = "msg 34";
.
.
.
.
msg[6000] = "end msg";


function writeMessage() { 
document.write(msg[today]);
}

</script>
</head>

<body>

<strong>Daily Message:</strong>  

<script>
writeMessage();
</script>

</body>

它显示所有日期的消息,然后从下一个月的第一个开始。我想要的是继续显示下一条消息,例如msg 32应该在下个月显示,依此类推,直到我结束消息。你能帮我修改我的代码逻辑来实现我想要的吗?

4 个答案:

答案 0 :(得分:3)

如果您在数组中的位置无关紧要,可以执行以下操作:

var daysSinceEpoch = Math.floor(new Date().getTime() / (24 * 60 * 60 * 1000));
var index = daysSinceEpoch % msg.length;

document.write(msg[index]);

如果你有一个固定的开始日期,你可以这样做:

var startDate = ... // initialize your startDate
var daysSinceStart = Math.floor((new Date().getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000));
var index = daysSinceStart % msg.length;

document.write(msg[index]);

答案 1 :(得分:1)

我认为你应该有一个“开始”日期。然后计算“开始”日期和“今天”之间的天数。然后使用您刚刚计算的“天数”作为数组索引来显示您的消息。

答案 2 :(得分:1)

根据建议改变了我的答案,我相信这个版本有效。摘自参考here

二手警报(今天);从弹出窗口调用day值以确认它是否有效:

enter image description here

<!doctype html>
<html>

<head>

<script type="text/javascript">

var msg = new Array();
var now = new Date();
var start = new Date(now.getFullYear(), 0, 0);
var diff = now - start;
var oneDay = 1000 * 60 * 60 * 24;
var today = Math.floor(diff / oneDay);

msg[1] = "msg 1";
msg[2] = "msg 2";
msg[3] = "msg 3";
msg[4] = "msg 4";
msg[5] = "msg 5";
msg[6] = "msg 6";
msg[7] = "msg 7";
msg[8] = "msg 8";
msg[9] = "msg 9";
msg[10] = "msg 10";
msg[11] = "msg 11";
msg[12] = "msg 12";
msg[13] = "msg 13";
msg[14] = "msg 14";
msg[15] = "msg 15";
msg[16] = "msg 16";
msg[17] = "msg 17";
msg[18] = "msg 18";
msg[19] = "msg 19";
msg[20] = "msg 20";
msg[21] = "msg 21";
msg[22] = "msg 22";
msg[23] = "msg 23";
msg[24] = "msg 24";
msg[25] = "msg 25";
msg[26] = "msg 26";
msg[27] = "msg 27";
msg[28] = "msg 28";
msg[29] = "msg 29";
msg[30] = "msg 30";
msg[31] = "msg 31";
msg[32] = "msg 32";
msg[33] = "msg 33";
msg[34] = "msg 34";
.
.
.
.
msg[6000] = "end msg";


function writeMessage() { 
document.write(msg[today]);
}

</script>
</head>

<body>

<strong>Daily Message:</strong>  

<script>
writeMessage();
</script>

</body>

答案 3 :(得分:1)

为您的邮件添加一个二维数组,其中第一个索引是月份,第二个索引是一天。

var msg = new Array(12);
msg[0] = new Array(31); // January
msg[1] = new Array(28); // February

...

msg[0][0] = "January 1st's message";
msg[0][1] = "January 2nd's message";
...
msg[0][30] = "January 31st's message";
msg[1][0] = "February 1st's message";
...

month = stamp.getMonth();
today = Stamp.getDate() - 1;

function writeMessage() { 
    document.write(msg[month][today]);
}