引导日期选择器的格式日期

时间:2018-07-20 21:06:05

标签: twitter-bootstrap-3 datepicker date-formatting bootstrap-datepicker

我正在使用带有Ajax的表单上的引导日期选择器来更新日期选择器上的日期限制。

我点击了ajax以获取总天数,并使用datepicker的setEndDate限制上限日期(以后的所有日期都将被禁用)。

$.ajax({
    url: url,
    type: 'POST',
    dataType: 'json',
    success: function (data) {
        if('total' in data && data['total'] > 1) {

            // datepicker successfully set the limit to next 'total' days
            $datepicker.datepicker('setEndDate', '+'+data['total']+'d');

            // how to set the field value with that end date?
            $datepicker.val($datepicker.datepicker('getEndDate'));
        }
    },
    error: function (e) {
        console.log(e);
    }
});

我的问题是如何将$datepicker.datepicker('getEndDate')格式化为yyyy-mm-dd? 当前它返回Fri Jul 27 2018 08:00:00 GMT+0800 (Singapore Standard Time)

我已经查看了文档[1],但是在格式化getEndDate时没有要分配的参数。

感谢任何帮助。 谢谢。

编辑:

对于任何对我有问题的人, 目前,我的解决方案是手动解析$datepicker.datepicker('getEndDate')的返回。

我看到输出与Date .toString()相等,所以我将输出作为JavaScript Date构造函数传递,然后手动对其进行格式化。

var d = new Date($datepicker.datepicker('getEndDate'));
if(d instanceof Date && !isNaN(d)) {
    var day = '' + d.getDate(),
        month = '' + (d.getMonth() + 1),
        year = d.getFullYear();
    if (month.length < 2) month = '0' + month;
    if (day.length < 2) day = '0' + day;

    // console.log([year, month, day].join('-'));
    $datepicker.datepicker('update', [year, month, day].join('-'));
}

[1] http://bootstrap-datepicker.readthedocs.io/en/latest/methods.html

1 个答案:

答案 0 :(得分:1)

您可以使用public function handle(DocumentSend $event) { if (!$event->sendSms) { return; } // here your code for sending } ,但是它提供了所选日期的格式。

因此,您需要使用$("#date").data("datepicker").getFormattedDate()中的getEndDate()获取结束日期,并使用datepicker对象来解析日期。

DPGlobal
$("#date").datepicker({
    format:"dd/mm/yyyy",
    endDate:"26/07/2018"
});

function getDate()
{
   var date = $.fn.datepicker.DPGlobal.formatDate($("#date").data("datepicker").getEndDate(),"dd-mm-yyyy","en")
   console.log(date)
}