在javascript中显示明天的名字?

时间:2011-01-30 13:47:33

标签: javascript dayofweek weekday

我正在尝试在我们的电子商务网站上输出类似于以下内容的内容:

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日期名称?所以它会输出明天的名字,而不是今天。此外,是否可以跳过周末?

2 个答案:

答案 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(星期一)

无需维护并行阵列。