【问题标题】:Date Update Client-Side on Static Web Page静态网页上的日期更新客户端
【发布时间】:2013-01-24 19:18:51
【问题描述】:

我目前正在尝试为剧院网站构建一个预订页面,演出日期设置为一周中的特定日期,但全年无限期运行。

我目前令人头疼的任务是创建一个函数,该函数将正确更新演出日期,使其成为最接近今天日期的相关数字日期。

因此,从今天开始,我需要它显示 1 月 25 日星期五、1 月 26 日星期六和 1 月 30 日星期三的选项,然后如果明天(2013 年 1 月 25 日星期五)访问,它将把星期五的日期更改为 2 月 1 日(如那是下周五的演出)。

我想这个函数会是这样的(在逻辑上):

updateShowDates(function(){
var todaysdate = getDate
var todayWeekday = getDay
var showWeekday = document.getElementByName('datepicker').value
var lengthtotarget = count number of days between todayWeekday and target weekday (i.e. Wednesday)
newShowDate = todaysdate + lengthtotarget
document.getElementByName('datepicker').innerHTML=newShowDate;
});

这将起作用的元素的 HTML 是:

<select id="dateselect" size="3">

<option value="Wednesday" title="Wednesday" name="datepicker">

    Wednesday

</option>

<option value="Friday" title="Friday" name="datepicker">

    Friday

</option>

<option value="Saturday" title="Saturday" name="datepicker">

    Saturday

</option>

</select>

我是一个 Javascript 的菜鸟,不久前我确实找到了一个对此非常有帮助的资源,但是当然,根据草皮定律,我没有为它添加书签,也找不到了。

任何帮助编写工作函数将不胜感激。这是针对大学课程的,当然我正在努力获得尽可能高的分数。

【问题讨论】:

标签: javascript jquery html date


【解决方案1】:

在 JavaScript 中,您可以使用减法运算符计算两个日期之间的差异,该运算符将返回两个日期之间的差异(以秒为单位)。您随后可以使用Math.abs 函数来获取差值的绝对值。 (实际上,在这种情况下,没有必要这样做,因为演出日期总是在未来。)您也可以使用array.sort 按日期与今天日期的差来排序。

我希望结果可能如下所示: 我没有实际测试过这段代码,但这是一个有根据的猜测。

function getNextShowTime(showTimes) {
    var x, now, soonest, offset;
    now = date;
    offset = Infinity;
    for(x = 0; x < showTimes.length; x++) {
        if (showTimes[x] - now < offset) {
            offset = showTimes[x] - now;
            soonest = showTimes[x];
        }
    }
    return soonest;
}

我提供的功能应该提供最快的演出日期。如果您想查找多个演出日期并按时间顺序对其进行排序,您将需要使用array.sort。您可能还想排除过去的节目。正如你所说,这是大学课程的练习,我将把这些留给你。

编辑: 提供的示例代码在不同的放映时间进行迭代。在循环开始时,soonest 为 NULL,offsetInfinity。对于每次迭代,将显示时间与当前时间进行比较,并与offset 进行比较。如果结果小于offset,则差值分配给offset,放映时间分配给soonest。因此,在循环结束时,offset 应该是距离下一次演出时间的时间量,soonest 应该是演出时间。

【讨论】:

    猜你喜欢
    • 2012-12-25
    • 2017-05-07
    • 2015-05-23
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    相关资源
    最近更新 更多