如何在$ .getJSON中使用我的函数JSONtoDate?这不起作用... val.timePosted返回一个字符串,如1448038589396,这个工作正常没有函数但是当我尝试使用函数将str转换为日期时,一切都消失了
$(document).ready(function() {
function JSONtoDate(num){
var month = num.getMonth() + 1;
var day = num.getDate();
var year = num.getFullYear();
var date = day + "/" + month + "/" + year;
return(date);
}
$.getJSON("http://www.freecodecamp.com/news/hot", function(json) {
var html = "";
var count = 0;
json.map(function(val) {
if(count == 0){
html += "<div class = 'row' >";
}
html += "<div class = 'stories col-md-3'>";
html += "<a href = " + val.link + " > <img src = " + val.image + " width = ' 200px'>";
html += "<p>" + val.headline + "</p> </a>";
html += "<p>" + val.rank + "</p>";
html += "<p>" + JSONtoDate(val.timePosted) + "</p>";
html += "</div>";
count += 1;
if(count == 4){
html += "</div>";
count = 0 ;
}
});
$(".section").html(html);
});
});
答案 0 :(得分:0)
这里有一个JS错误:
1448038589396不是日期对象,它会抛出:
未捕获的TypeError:num.getMonth不是函数
在jsFiddle中尝试以下内容
在JSONtoDate中尝试以下
function JSONtoDate(num){
var num = new Date(num);
var month = num.getMonth() + 1;
var day = num.getDate();
var year = num.getFullYear();
var date = day + "/" + month + "/" + year;
return date;
}
我将一个字符串转换为基于UNIX时间戳的新Date()对象
答案 1 :(得分:0)
您的函数JSONtoDate
需要Date
个对象作为参数,但您提供String
- "1448038589396"
。您可以传递日期,该日期由Number
值val.timePosted
html += "<p>" + JSONtoDate(new Date(parseInt(val.timePosted))) + "</p>";
^^^^^^^^^^^^^^^^^^ ^^
或让您的函数接受string
参数:
function JSONtoDate (dateString) {
var date = new Date(parseInt(dateString));
var month = date.getMonth() + 1;
...