2014-12-04 30 views
1

如果我收到來自DB的所有記錄與JSON如何更改格式2014-09-04 23:20:00(這是存儲在DB)到04/09/2014。目前日期被解析到Thu Jan 01 1970 00:00:02 GMT+0000 (GMT Standard Time)解析JSON日期爲另一種格式

<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> 

回答

1

您解析字符串,使用任何幾種庫可爲宗旨,然後把它放在你想要的格式,使用任意多個庫avaialble爲宗旨。在現代瀏覽器中,您引用的字符串應該被new Date()正確解析,但是如果您發現它沒有正確解析(您的示例沒有意義),則可能需要MomentJS之類的東西。

當然或者,你可以它的正則表達式:

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);
<!-- 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>

1

如果你得到了值週四1970年1月1日00:00:02 GMT + 0000(GMT標準時間)的意思是,然後像下面那樣做

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() 

所以你會得到日,月和年。你可以按照你想要的方式進行格式化。

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中提取的日期元素。

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)