2017-03-08 139 views
0

我正在開發一個Web應用程序,其中一項功能是根據您插入的日期提供廣告牌列表。查看特定日期的星期幾

我找到了Billboard排行榜這個偉大的非官方API: http://billboard.modulo.site/

正如你可以在文檔中看到,你可以提供請求的日期,並得到官方的「熱100」在這個時間上市。

但是,其中一個約束是,提供的日期必須是星期六(這是當Billboard每週更新其圖表時)。如果你輸入的日期不是星期六,那麼響應是一個空數組的json。

如果我向用戶提供選擇年份,月份和日期(或周,無所謂)的選項,那麼Javascript中最有效的解決方案是將其轉換爲星期六的日期在同一周?

例如假設用戶輸入以下日期:2016年3月4日 (這是一個星期五)

我怎麼能檢查是什麼日子2016年3月4日的一週 - 讓我可以更改爲2016-03-05(這是星期六)?

,將會變得更愉快,如果用戶輸入將

  • 年2016

  • 月份:三月

  • 周:9

然後得到第9周的星期六的日期,但不是蘇如果可能的話。

最簡單的解決方案似乎只是看到提供日期的一週中的哪一天,但不知道如何能夠通過該..任何想法?

回答

2

您可以使用此命令獲取給定日期的下週六的日期。

var date = new Date(); 
date.setDate(date.getDate() + (1 + 5 - date.getDay()) % 7); 
console.log(date); 

Inspiration

+0

謝謝!非常聰明使用模數 – user3043462

1

我會通過提供日期選擇器,並確保只有星期六可以選擇引導用戶。

例如,可以使用並且以這種方式進行限制。請參閱this link以瞭解執行此操作的方法。

從用戶的角度來看,這很好,並且無需計算「最近的星期六」就可以輕鬆完成工作。

這很容易做到。這裏的工作示例:

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <title>jQuery UI Datepicker - Default functionality</title> 
 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> 
 
    <link rel="stylesheet" href="/resources/demos/style.css"> 
 
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
 
    <script> 
 
     function onlySaturdays(date) { 
 
      return [!!(date.getDay() === 6)]; 
 
     } 
 
     $(function() { 
 
      $("#datepicker").datepicker({ beforeShowDay: onlySaturdays }); 
 
     }); 
 
    </script> 
 
</head> 
 
<body> 
 

 
<p>Date: <input type="text" id="datepicker"></p> 
 

 

 
</body> 
 
</html>

+0

謝謝!這是一個相當優雅的解決方案 – user3043462

0

做這樣的事情:
的JavaScript:

var dateString = document.getElementById('input'); 
var d = new Date(dateString); 
var weekday=new Array(7); 
weekday[0]="Sunday"; 
weekday[1]="Monday"; 
weekday[2]="Tuesday"; 
weekday[3]="Wednesday"; 
weekday[4]="Thursday"; 
weekday[5]="Friday"; 
weekday[6]="Saturday"; 

var n = weekday[d.getDate()]; 
if n = "Saturday" { 
//code here 
} 
else { 
//code here for switching 
}