json响应日期格式为用户定义的日期格式

时间:2014-04-28 05:43:02

标签: javascript jquery json

以下代码返回$("#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>

我希望$ {&#34;#dob&#34;)和$(&#34;#anniversery&#34;)以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);
}

这不起作用。

6 个答案:

答案 0 :(得分:1)

您必须将从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;
}

答案 1 :(得分:0)

您可以使用MomentJS

申请格式:

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

答案 2 :(得分:0)

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

=> 2014/04/01 

答案 3 :(得分:0)

在使用get函数之前,您应该创建新的Date对象:

var date = new Date(dt);

然后你可以得到正确的值:

var dd = date.getDate();

等等。

答案 4 :(得分: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

答案 5 :(得分:0)

试试这个..

var thisDate = "2013-01-01 00:00:00";
var thisDateT = thisDate.substr(0, 10);