Формат даты ответа json в определенный пользователем формат даты

0

Следующий код возвращает $("#dob") и $("#anniversery") дату как 2014-04-01T00:00:00

Мой код

<script>
    $(function() {
        function log(message) {
            $("<div>").text(message).prependTo("#log");
            $("#log").scrollTop(0);
        }
        $("#customerName").autocomplete({
            source: function(request, response) {
                $.ajax({
                    url: "ajaxCustomer",
                    dataType: "json",
                    data: {
                        str: $("#customerName").val(),
                        maxRows: 12
                    },
                    success: function(data) {
                        response($.map(data.customerList, function(item) {
                            console.log(item);
                            return {
                                label: item.customerName,
                                value: item.customerName,
                                id: item.customerId,
                                address: item.address,
                                dob: item.dob,
                                mobno: item.mobno,
                                annversery: item.anniversery
                            }
                        }));
                    },
                    error: function(data) {
                        alert(data.supplierList);
                        console.log(typeof data);
                        console.log(data);
                        alert('error');
                    }
                });
            },
            minLength: 1,
            select: function(event, ui) {
                $("#customerId").val(ui.item.id);
                $("#mobNo").val(ui.item.mobno);
                $("#address").val(ui.item.address);
                $("#dob").val(ui.item.dob);
                $("#anniversery").val(ui.item.annversery);
            },
            open: function() {
                $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
            },
            close: function() {
                $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
            }
        });
    });
</script>

Я хочу $ ("# dob") и $ ("# anniversery") его значение в формате yyyy/mm/dd Как это сделать

Я пробовал $("#dob").val(format_date(ui.item.dob));

function format_date(dt) {

    var dd = dt.getDate();
    var mm = dt.getMonth() + 1; //January is 0!
    var yyyy = dt.getFullYear();
    if (dd < 10) {
        dd = '0' + dd;
    }
    if (mm < 10) {
        mm = '0' + mm;
    }
    dt = mm + '/' + dd + '/' + yyyy;
    document.write(dt);
    document.write(year + '/' + month + '/' + day);
}

Это не работает.

  • 0
    Посмотрите на этот URL, возможно, это поможет stackoverflow.com/questions/19546855/…
  • 0
    @AjayChauhan Пожалуйста, смотрите обновленный вопрос
Показать ещё 2 комментария
Теги:

6 ответов

1
Лучший ответ

Вы должны ui.item.dob значение, которое вы получаете от ui.item.dob до даты.

var datefield = new Date(ui.item.dob);
$("#dob").val(format_date(datefield));

Затем в вашей функции format_date удалите лишнюю строку внизу и вместо этого поставьте оператор return:

function format_date(dt) {

    var dd = dt.getDate();
    var mm = dt.getMonth() + 1; //January is 0!
    var yyyy = dt.getFullYear();
    if (dd < 10) {
        dd = '0' + dd;
    }
    if (mm < 10) {
        mm = '0' + mm;
    }
    dt = mm + '/' + dd + '/' + yyyy;
    return dt;
}
0

Вы можете использовать MomentJS

Применить формат:

$("#anniversery").text(moment(ui.item.annversery).format('YYYY/MM/DD'));
0

попробуй это..

var thisDate = "2013-01-01 00:00:00";
var thisDateT = thisDate.substr(0, 10);
0
var date = "2014-04-01T00:00:00";
var newDate = date.split("T")[0].replace(/-/g, "/");
console.log(newDate);

=> 2014/04/01 
0

Как уже указывалось @display_name, вы пропустили синтаксический анализ даты. Здесь более упрощенная версия вашего кода:

function format_date(dt) {
    var dateString = new Date(dt);  //parse the date
    var formatedDate = dateString.getFullYear() + "/" + 
                  ('0'+ (dateString.getMonth() +1)).slice(-2) + "/" + 
                  ('0'+ dateString.getDate()).slice(-2);
    return formatedDate; //return the formatted date to the input field
}

Теперь вы можете

$("#dob").val(format_date(ui.item.dob)); // incase if it is a textbox
0

Вы должны создать новый объект Date перед использованием функций get:

var date = new Date(dt);

И тогда вы можете получить правильные значения:

var dd = date.getDate();

и так далее.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню