Bootstrap datetimepicker显示当前日期并允许选择过去的日期

时间:2018-03-02 16:35:09

标签: jquery bootstrap-datetimepicker

我实际上有一些问题试图显示当天并允许选择过去的日期。如果我将当前日期设置为今天的日期,则无法选择过去日期,如果我删除参数startDate: new Date(),我可以选择过去日期,但默认显示日期更改为1899年。我不能保持两种逻辑。

使用以下代码段,我可以默认显示当前日期,但我无法选择过去的日期:

             $(".form_datetime").datetimepicker({
                 format: "mm/dd/yyyy HH:ii P",
                 autoclose: true,
                 showMeridian: true,
                 startDate: new Date(),
                 todayBtn: true,
                 minuteStep: 5,
                 language: 'en',
                 forceParse: false
             });

就像我说的,如果我删除参数startDate,我可以选择过去的日期,但我的默认显示日期是1899而不是当前日期:

             $(".form_datetime").datetimepicker({
                 format: "mm/dd/yyyy HH:ii P",
                 autoclose: true,
                 showMeridian: true,
                 //startDate: new Date(),
                 todayBtn: true,
                 minuteStep: 5,
                 language: 'en',
                 forceParse: false
             });

我如何保留两件事:默认选择过去日期并显示当前日期? 我也试过添加这样的新功能,但它既没有工作:

             $(".form_datetime").datetimepicker({
                 format: "mm/dd/yyyy HH:ii P",
                 autoclose: true,
                 showMeridian: true,
                 //startDate: new Date(),
                 todayBtn: true,
                 minuteStep: 5,
                 language: 'en',
                 forceParse: false
             }).on('dp.show', function () {
                 return $(this).data('DateTimePicker').defaultDate(new Date());
             });

2 个答案:

答案 0 :(得分:0)

要满足您的要求,您可以使用defaultViewDateendDate选项。请参阅官方文档,了解两者的工作原理:https://bootstrap-datepicker.readthedocs.io/en/stable/options.html
这是一个工作的掠夺者:https://plnkr.co/edit/CTrANXLLgaLwT8pIPQV2?p=preview

答案 1 :(得分:0)

以下答案与S.Malot的bootstrap-datetimepicket有关,但它可能也适用于其他版本,例如jquery-bootstrap。

!由于该解决方案需要更改源代码,因此请仔细进行操作,然后再次测试您的应用程序,以确保它不会带来有害的副作用。我这边一切都很好。

我一直在寻找解决方案,最后在github Malot中喜欢它。感谢abcbaby。

我用他/她的建议更新了bootstrap-datetimepicker.js的 第1620行

更改此

date = new Date(0, 0, 0, 0, 0, 0, 0), // which is Dec. 31, 1899

对此

date = new Date(), // which is today's date


为使内容回到上下文,我使用的是法语区域(regional: 'fr',)和语言(language: 'fr',),需要在打开页面时显示当前日期(日期无需时间)在成员文件的“开始日期”字段中。为此,我在HTML代码中将PHP echo函数与date ("d F Y")一起使用。

只要通过窗口小部件输入日期,一切都可以正常工作,但是对于在窗口小部件外部接收值的字段,只要您单击该字段,日期就会重置为1899年12月31日。

有了此代码hack,我不再有这个问题。