季节(即夏季/冬季)依赖的超链接

时间:2017-10-26 12:12:25

标签: jquery date hyperlink momentjs

如何在夏季(即https://example.net/summer)和冬季(即https://example.net/winter)创建一个到达不同终点的超链接?需要在没有PHP等的情况下完成客户端。假设夏天是从4月15日到9月15日,冬天是从9月16日到4月14日,但是,确切的日期并不重要,如果更容易可以略微改变。

EDIT。由于Quentin Roger提供moment()建议,我无法真正对此解决方案表示赞赏。

<a id="link" href="javascript:void(0)">Click Me</a>

$("#link").click(function() {
    window.location = moment().isBetween(moment("2017-05-01"), moment("2017-09-01"))
    ?'https://example.net/summer'
    :'https://example.net/winter';
});

2 个答案:

答案 0 :(得分:2)

您可以在设置href属性

之前进行一些日期比较

&#13;
&#13;
window.addEventListener("load", function() {
  let anchor = document.getElementById("season_dependant");
  // Get current Date:
  let date = new Date();
  
  // consider two dates as boundaries, they must be the same year
  let start_date = new Date();
  start_date.setMonth(3); // month index (-1)
  start_date.setDate(15); // day of month
  // => 15th, April of current year
  
  let end_date = new Date();
  end_date.setMonth(9); // month index (-1)
  end_date.setDate(1); // day of month
  // => 1st, October of current year
  
  // NOTE: must be start_date < end_date for this to work
  
  if (date > start_date && date < end_date) {
    // If inside period:
    anchor.href = "/summer";
  } else {
    // If outside period:
    anchor.href = "/winter";
  }
});
&#13;
<a id="season_dependant">link</a>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

我认为我误解了某些内容,但是如果您想根据日期根据条件更新链接。您可以执行以下操作(使用momentjs)。 我让你改善条件,以确定你是否在夏天;)

if (moment().isBetween(moment("2017-05-01"),moment("2017-09-01"))) {
  $("#link").attr('href', "https://example.net/summer").html('summer');
} else {
  $("#link").attr('href', "https://example.net/winter").html('winter');
}

http://jsfiddle.net/ubdxLeb9/1/