我正在尝试在我们的电子商务网站上输出类似于以下内容的内容:
Order by 5pm today for dispatch on Monday
显然,星期一这个词将被第二天的名字所取代(理想情况是下一个工作日,即周六或周日)。
我有以下简单的javascript脚本,它可以执行最基本的版本。它只输出当天的名称:
<p id="orderBy">
<script type="text/javascript">
<!--
// Array of day names
var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday");
var now = new Date();
document.write("Order by 5pm today for dispatch on " + dayNames[now.getDay()]);
// -->
</script>
</p>
有没有办法操纵上面的代码来+1日期名称?所以它会输出明天的名字,而不是今天。此外,是否可以跳过周末?
答案 0 :(得分:3)
另一种方式......
<p id="orderBy">
<script type="text/javascript">
<!--
// Array of day names
var dayNames = ["Sunday","Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday"];
var nextWorkingDay = [ 1, 2, 3, 4, 5, 1, 1 ];
var now = new Date();
document.write("Order by 5pm today for dispatch on " +
dayNames[nextWorkingDay[now.getDay()]]);
// -->
</script>
</p>
答案 1 :(得分:2)
这是一个单行班,也将跳过周末:
document.write("Order by 5pm today for dispatch on " +
dayNames[ ((now.getDay() + 1) % 6 ) || 1 ] );
如果getDay是星期五(5),那么+ 1是6,%6是0,这是假的所以|| 1使其成为1(星期一)。
如果getDay是星期六(6),那么+ 1是7,%6是1(星期一)
如果getDay是星期日(0),那么+ 1是1,%6是1(星期一)
无需维护并行阵列。