将JSON日期解析为另一种格式

时间:2014-12-04 11:58:32

标签: javascript php jquery json

如果我使用JSON从DB收到所有记录,我如何将格式2014-09-04 23:20:00(存储在数据库中)更改为04/09/2014。目前日期被解析为Thu Jan 01 1970 00:00:02 GMT+0000 (GMT Standard Time)

<script> 
$("document").ready(function() {
    $.getJSON("test1.php", function(data) {

        var table = $("<table>");
        $("#div-my-table").empty().append(table);

        $.each(data, function(i, item) {
            table.append("<tr><td>" + item.code +"</td><td>" + item.line +"</td><td>" + item.org +"</td><td>" + new Date(parseInt(item.by_date.substr("u"))) + "</td></tr>");
        });

    });
});        
</script>

4 个答案:

答案 0 :(得分:1)

您使用可用于此目的的几个库中的任何一个解析字符串,然后使用可用于此目的的几个库中的任何一个将其放入所需的格式。在现代浏览器中,您引用的字符串应该由new Date()正确解析,但如果您发现它未被正确解析(您的示例没有意义),您可能需要类似MomentJS。

当然,你可以正则表达它:

&#13;
&#13;
var yourString = "2014-09-04 23:20:00";
var parts = /^(\d{4})-(\d{2})-(\d{2})/.exec(yourString);
var newString = parts[3] + "/" + parts[2] + "/" + parts[1];
snippet.log("newString = " + newString);
&#13;
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果您的值为 1970年1月1日星期一00:00:02 GMT + 0000(格林尼治标准时间标准时间)意味着,那么请执行以下操作

 var d=new Date('Thu Jan 01 1970 00:00:02 GMT+0000 (GMT Standard Time)');
    var day=d.getDate();
    var month=d.getMonth()+1;
    var year = d.getFullYear();

then format the string like d.getDate()+"/"+(d.getMonth()+1)+"/"+d.getYear()

所以你会得到日,月和年。您可以按照自己的方式进行格式化。

答案 2 :(得分:1)

您可以从日期中提取日,月和年,然后使用它来形成字符串。您可以尝试以下内容:

var dateObj = new Date(jsonDate);
var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();

newdate = day + "/" + month + "/" + year;
alert(newdate);

其中jsonDate是您从JSON中提取的日期元素。

答案 3 :(得分:0)

// Split timestamp into [ Y, M, D, h, m, s ]
var t = "2010-06-09 13:12:01".split(/[- :]/);

// Apply each element to the Date function
var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);

alert(d);
// -> Wed Jun 09 2010 13:12:01 GMT+0100 (GMT Daylight Time)