每周更改一次

时间:2013-06-18 14:50:34

标签: javascript

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

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

这可能吗?

4 个答案:

答案 0 :(得分: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的而非令人烦恼的1月= 0,2月= 1 ....功能。

抱歉 - 我会在最后一篇文章中将你发送到infinte loop-land - 所以这已得到纠正,并且在你的问题中也有格式化。

答案 1 :(得分:1)

您希望在getDay()对象上使用Date方法,该方法将星期几作为整数返回(0 =星期日,1 =星期一,... 6 =星期六)< / p>

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

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

    return date;
}

答案 2 :(得分:1)

这是如何在没有循环的情况下完成的。

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

d将永远是过去的Tueday或今天。

答案 3 :(得分:-4)

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

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

但你会用

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

if (tuesday === 2){
  // do somehting
}
不要把我排在第二位,不是百分之百确定是否会在星期二,但是星期二会从0-6返回一个int,不确定它是星期日还是星期一开始