如何从JSON解析日期

时间:2013-07-19 07:25:21

标签: javascript json

我正在使用一个网格视图,它在某些情况下也会被json绑定,并且网格的颜色包含日期,所以在从json获取数据时,我需要解析日期。我能够得到约会而不是时间。尝试和搜索太多了。我在下面提到了两种方法,但我没有解决我的问题。

{
       function ParseDate(jsonDate) {
       date = new Date(parseInt(String(jsonDate).substr(6)));
       day = date.getDate();
       month = date.getMonth() + 1;
       year = date.getFullYear();
       return month + "/" + day + "/" + year;
  }
}

这给了我一个日期,但我需要时间,所以我又做了一个方法

{
    function ParseDate(jsonDate) {
        var date = new Date(parseInt(jsonDate.substr(6)));
        var formatted = ("0" + (date.getMonth() + 1)).slice(-2) + "/" + ("0" + date.getDate()).slice(-2) + "/" + date.getFullYear() + " " + date.getHours() + ":" + date.getMinutes() + ":" + "0" + date.getSeconds();
        return formatted;

    }
}

但此函数返回

    //07/19/2013 11:38

而不是//7/19/2013 11:38:07 AM这是期望的结果。请帮我解决这个问题。非常感谢你。另外,我需要显示Am或PM是强制性的

3 个答案:

答案 0 :(得分:1)

试试这个:

function ParseDateToLocale(jsonDate) {
    var date = new Date(parseInt(jsonDate.substr(6)));
    var myDate = new Date(date);
    var formatted = myDate.toLocaleString();
    return formatted;
}

在此处查看:http://jsfiddle.net/2ft3A/

答案 1 :(得分:1)

试试这个,这对你有帮助,

function ParseDate(jsonDate) {
        var date = new Date(parseInt(jsonDate.substr(6)));
        var merd='';
        if(date.getHours()>=12)
        {
            merd='PM';
        }
        else
        {
            merd='AM';
        }

        var formatted = ("0" + (date.getMonth() + 1)).slice(-2) + "/" + ("0" + date.getDate()).slice(-2) + "/" + date.getFullYear() + " " + date.getHours() + ":" + date.getMinutes() + ":" + "0" + date.getSeconds()+ " " + merd;

        return formatted;

    }

答案 2 :(得分:0)

dateObject.toLocaleTimeString();
(OR)
date.getHours()将返回0-24hrs。根据该值,您可以附加AM或PM