查看特定日期的哪一天

时间:2017-03-08 22:51:07

标签: javascript html api date

我正在开发一个Web应用程序,其中一个功能是根据您插入的日期提供广告牌列表。

我发现这个广告牌图表的非官方API: http://billboard.modulo.site/

正如您在文档中看到的那样,您可以提供REQUEST的日期并获取该日期的官方“热门100”列表。

然而,一个限制是提供的日期必须是星期六(这是Billboard每周更新他们的图表时)。如果您输入的日期不是星期六,则响应是带有空数组的json。

如果我向用户提供选择年份,月份和日期(或周,无关紧要)的选项, Javascript 中最有效的解决方案是将其转换为星期六同一周的日期?

例如,假设用户输入以下日期: 2016-03-04(周五)

我如何查看2016-03-04的哪一天 - 以便我可以将其更改为 2016-03-05(周六)?

如果用户输入是

,那将更加愉快
  • 年份:2016

  • 月份:三月

  • 周:9

然后得到第9周的星期六的日期,但不确定是否可能。

最简单的解决方案似乎只看到提供日期的一周中哪一天,但不确定如何通过这个...任何想法?

3 个答案:

答案 0 :(得分:2)

您可以使用它来获取指定日期下周六的日期。

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

Inspiration

答案 1 :(得分:1)

我会通过提供日期选择器来指导用户,并确保只能选择星期六。

例如,可以使用jQuery datepicker,并以此方式加以限制。有关实现此目的的方法,请参阅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>
&#13;
&#13;
&#13;

答案 2 :(得分: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
}