Как решить проблему получить дату 1970-01-01 от DatePicker? - PullRequest
0 голосов
/ 01 апреля 2020

Я использую DatePicker и функцию. Функция должна использовать конвертирование из стиля dd-mm-yyyy в yyyy-mm-dd. Текущая ситуация Я записал дату в базу данных, формат базы данных yyyy-mm-dd, поэтому мне нужно сначала преобразовать в стиль dd-mm-yyyy для удобства чтения. Поэтому во время отправки мне нужно преобразовать обратно в yyyy-mm-dd (здесь я использую функцию).

Я открыл форму, в которой уже записано чтение из базы данных, включая дату, например, дата 26-03-2020. Поэтому я стараюсь отправить форму без изменения даты. Проблема возникает здесь, когда дата установлена ​​на 1970-01-01, почему это происходит? см. ниже.

Я использую этот bootstrap -датчик

Я пробовал оба варианта ниже, но вот что я получаю:

var actualDate = $('#actualDate').val(); // If i try this I will get NaN-NaN-NaN

var actualDate = $('#actualDate').datepicker('getDate'); // If i try this I will get 1970-01-01

enter image description here

enter image description here

HTML

<input type="text" class="form-control" id="actualDate"></input>

JS

$.ajax({
    url : url_projectList + '/1st_api',
    crossDomain: true,
    type : 'POST',
    dataType : 'json',
    data: JSON.stringify({project_id: id}),
    success: function(response){

        var actualDate = $('#actualDate').val();       // If i try this I will get NaN-NaN-NaN
        var actualDate = $('#actualDate').datepicker('getDate');     // If i try this I will get 1970-01-01

        if ($("#actualDate").val() == ""){
            var project_start_date = null;  // This is working fine
        } else {
            project_start_date = sendDate(actualDate);   // Here is the error coming
        }

        console.log(project_start_date)  // I got NaN-NaN-NaN

        $.ajax({
            url : url_projectList + '/2nd_api',
            type : 'POST',
            dataType : 'json',
            data: params,
        });
    }
});

function sendDate(input_date){

    proc_date = new Date(input_date)
    year = proc_date.getYear() + 1900
    month = proc_date.getMonth() + 1
    day = proc_date.getDate()

    if (month < 10)
    {
      month = "0" + month;
    }
    if (day < 10)
    {
      day = "0" + day;
    }

    return year +"-"+ month +"-"+ day;
}

DATEPICKER

$('#actualDate').datepicker({
    language: 'en',
    format: "dd-mm-yyyy",
    clearButton: true,
    toggleSelected: true,
    autoclose: true,
    todayHighlight: true,
    ignoreReadonly: true,
});

1 Ответ

0 голосов
/ 01 апреля 2020

Вы должны изменить формат сборщика данных

$('.datepicker').datepicker({
    format: 'yyyy/dd/mm'
});

для дальнейшего посещения информации

https://bootstrap-datepicker.readthedocs.io/en/stable/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...