【问题标题】:How do I restrict dates on datepicker after a certain time?如何在特定时间后限制日期选择器上的日期?
【发布时间】:2012-10-15 21:38:04
【问题描述】:

目前我这里有这段代码:

<script type="text/javascript" src="catalog/view/javascript/jquery/ui/jquery-ui-timepicker-addon.js"></script> 
<script type="text/javascript"><!--
if ($.browser.msie && $.browser.version == 6) {
    $('.date, .datetime, .time').bgIframe();
}

$('.date').datepicker({dateFormat: 'D M dd, yy', minDate:2, beforeShowDay: $.datepicker.noWeekends});
$('.datetime').datetimepicker({
    dateFormat: 'yy-mm-dd',
    timeFormat: 'h:m'
});
$('.time').timepicker({timeFormat: 'h:m'});
//--></script> 

效果很好,因为我想添加一件事。

我使用日期选择器,以便我的客户可以选择他们可以取货的日期。

我希望它在美国东部标准时间下午 5.30 后的两天内清空。

所以在星期一下午 1 点我只能选择星期三以后。如果是周一下午 6 点,我只能从周四开始订购。

有人知道怎么做吗?我无法从 API 网站上完全弄清楚。

非常感谢

彼得

【问题讨论】:

  • API 提供 minDate 和 maxDate (jqueryui.com/datepicker/#min-max) 但您必须为这些特定时间范围编写逻辑。日期对象应该有助于使它更容易。
  • 您知道客户端日期取决于用户的计算机设置,对吧?因此,除非您获得服务器时间,否则无法正确验证...
  • 是的,如果您阅读了对答案的评论,我已经计划好了。谢谢

标签: javascript jquery date time datepicker


【解决方案1】:

根据文档:http://jqueryui.com/datepicker/#min-max

您可以根据现在的时间设置minDate: 2

var min = 1;
var currentTime = new Date();
if (currentTime.getHours() >=17 && currentTime.getMinutes() >=30){
    min = 2;
}

然后将min 传递给minDate

正如 ahren 指出的那样,这将是用户的时间,而不是您的时间。如果你想找到时区并从那里调整,你可以使用getTimeZoneOffsethttp://www.w3schools.com/jsref/jsref_gettimezoneoffset.asp

【讨论】:

  • 好主意。 1+来自我!我会试一试,让你知道我是怎么过的:)我不知道为什么我没有那样想!谢谢
  • 我将使用 PHP 获取 EST 时间并将其放入隐藏输入中。我知道这意味着用户可以使用 HTML 来更改时间,但我将有一个 PHP 脚本来验证用户尝试将其添加到购物车的时间。再次感谢
猜你喜欢
  • 2023-03-05
  • 2021-08-15
  • 1970-01-01
  • 2012-09-09
  • 2020-01-04
  • 2021-06-06
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多