【问题标题】:How to customize jquery ui date picker?如何自定义 jquery ui 日期选择器?
【发布时间】:2012-12-15 04:45:28
【问题描述】:

我想通过将服务器日期设置为当前日期来自定义 jquery ui 日期选择器。

参考question

我写了

var queryDate = '2012-11-15',
    dateParts = queryDate.match(/(\d+)/g)
    realDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);  
                                // months are 0-based!


$('#datepicker').datepicker('setDate', realDate);
$('#datepicker').datepicker({ dateFormat: 'yy-mm-dd' });

它有效,但是当我将第二步更改为

$('#datepicker').datepicker({ dateFormat: 'yy-mm-dd',minDate: 0,maxDate: '+6M' });

它根据系统日期而不是我分配的服务器日期显示日期,

如何解决这个问题??

【问题讨论】:

    标签: jquery datepicker customization


    【解决方案1】:

    您可以将输入字段的值设置为来自服务器端的值:

    <script>
    var queryDate = '2012-02-25';
    var dateParts = queryDate.match(/(\d+)/g);
    
    var realDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);
    
    var min_date = new Date(2012, 2 - 1, 25 - 20); //feb 5 is the min date
    var max_date = new Date(2012, 2 - 1, 25 + 1); //feb 26 is the max date
    
    $( "#date" ).datepicker({dateFormat: 'yy-mm-dd', minDate: min_date, maxDate: max_date});
    $( "#date" ).datepicker("setDate", realDate);
    </script> 
    

    在这种情况下,我们将日期设置为 2012-02-25。为了使它起作用,您必须将日期选择器的格式设置为与您用于值的格式相同,即'Y-m-d'

    【讨论】:

    • 我知道,但这不是我的问题,我使用 setDate 属性将服务器日期分配给日期选择器,但是当我尝试限制日期范围时,日期选择器有另一个名为 minDate 和 maxDate 的属性。因此我为 minDate 和 maxDate 分配了一个值,但在此之后,它根据系统日期进行处理,并且不会触发我分配的服务器日期。
    • 哎呀抱歉第一次没有注意到,我现在看到了问题。给我时间玩它:)
    • 好的。我已经根据您发布的原始代码更新了代码。基本上你必须设置一个日期作为最小和最大日期。
    • 感谢您为我花费的宝贵时间。代码运行良好。我还有一个问题,如果我希望 maxDate 为 +6M 怎么办??
    • 从原始日期算起 6 个月?您可以为第二个参数执行类似dateParts[1] + 6 - 1 的操作
    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    相关资源
    最近更新 更多