Ajax接收后端日期格式

controller层

@RequestMapping("/update")
    @ResponseBody
    public Object update(Integer testId){
        Test_one sel = service.selectId(testId);
        return sel;
    }

里面有日期格式,格式为:Sat Nov 01 00:00:00 CST 1997,用AJax把查询出来的值回调到HTML页面时,日期格式自动转换成1997-10-31T16:00:00.000Z格式。所以Ajax回调得到的值$("#testDate").val(data.testDate);无法赋值给input的date属性。而HTMl页面的input框中的type="date"的属性它的格式是1997-01-01。需要注意的是系统会把1997-01-01,月日的十位为0的自动省略掉为1997-1-1,这是无法赋值给date的。所以HTML页面需要对日期的格式化

Ajax方法

    function select(res) {
        var testId = $(res).parent().siblings(".testId").html();
        $.ajax({
            url:"/Test/update",
            data:{
                testId:testId
            },
            success: function(data){
                $("#testId").val(data.testId);
                $("#testName").val(data.testName);
                $("#testAge").val(data.testAge);
                //从后端获取到的日期
                var time = new Date(data.testDate).toJSON();
                var d = new Date(time);
                //如果小于9,前面加0
                var day = ("0" + d.getDate()).slice(-2);
                 //如果小于9,前面加0
                var month = ("0" + (d.getMonth() + 1)).slice(-2);
                //拼接日期
                var times=d.getFullYear() + '-' + (month) + '-' + (day);
                //把转换的日期赋值给input
                $("#testDate").val(times);
            },
            error:function (data) {
                alert("没有该信息");
            },
        });
    }
发布了22 篇原创文章 · 获赞 2 · 访问量 1143

猜你喜欢

转载自blog.csdn.net/javaasd/article/details/105071731