0

Javascript有没有办法每周更新一次日期?

例如:我有一个每周二更改的每周菜单。所以今天的标题是“2013 年 6 月 18 日的菜单”,但只要下周二在 25 日到来,我希望菜单自动更新为“2013 年 6 月 25 日的菜单”。

这可能吗?

4

4 回答 4

3
var monthname=new Array('January','February','March','April',
                        'May','June','July','August','September',
                        'October','November','December');

var day = new Date();

while (day.getDay() != 2) day = new Date(day.valueOf()-86400000);

var suffix;
switch (day.getDate() % 10) {
    case 1 : suffix = 'st';
    case 2 : suffix = 'nd';
    case 3 : suffix = 'rd';
    default : suffix = 'th';
}

alert('Menu for ' + day.getDate() + suffix + ' ' 
      + monthname[day.getMonth()] +  ' ' + day.getFullYear());

请注意,JS 具有相当烦人的 January = 0, February = 1.... 功能。

道歉 - 我将在我的上一篇文章中将你送到无限循环 - 所以这已得到纠正,并且也有你在问题中概述的格式。

于 2013-06-18T15:01:51.270 回答
1

这是不循环的方法。

var d = new Date();
d.setTime(d.getTime() + (86400000 * (2 - (d.getDay() > 1 ? 
                                   d.getDay() : d.getDay() + 7))));

d永远是过去的星期二或今天。

于 2013-06-18T15:37:31.140 回答
1

您想getDay()在对象上使用该方法,该方法Date以整数形式返回星期几(0 = 星期日,1 = 星期一,... 6 = 星期六)

function mostRecentTuesday()
{
    var date = new Date();

    // 2 == tuesday
    while(date.getDay() != 2)
    {
        // rewind a day
        date.setDate(date.getDate() - 1);
    }

    return date;
}
于 2013-06-18T15:00:50.470 回答
-4

如果今天是星期二,您可以签入 javascript,然后当它是时,只需将某些内容的值更新为当前日期,检查 javascript 中的日期函数

http://www.w3schools.com/jsref/jsref_obj_date.asp

但你会使用

var tuesday = new Date().getDay();

if (tuesday === 2){
  // do somehting
}

不要把我固定在第二个,不是 100% 确定那是否是星期二,但是 var 星期二会返回一个 0-6 的整数,不确定它是星期天还是星期一开始

于 2013-06-18T14:53:32.543 回答