我想将数字长日期从mongo db数据库转换为javascript中的dd / mm / yyyy格式。
当我像下面的代码一样放置直接硬编码值时,它给出了正确的结果:
function getDateIfDate(d) {
var m = d.match(/\/Date\((\d+)\)\//);
return m ? (new Date(+m[1])).toLocaleDateString('en-US', {month: '2-digit', day: '2-digit', year: 'numeric'}) : d;
}
console.log(getDateIfDate("/Date(1460008501597)/"));
这是我的代码:
for(var i=0;i<keys;i++)
{
var tr="<tr>";
tr+= "<td><input type='checkbox' name='record'></td>"
tr+="<td>"+positionList[i]["fromDate"]+"</td>";
var j = (positionList[i]["fromDate"]);
console.log("value of j is =========="+j);
console.log(getDateIfDate("/Date(j)/")); // actual conversion should happen here
}
我应该在代码中进行哪些更改以获取所需格式的日期?
答案 0 :(得分:3)
tr+="<td>"+positionList[i][new Date("fromDate").toLocaleString()]+"</td>";
尝试用这个新行替换旧行
答案 1 :(得分:2)
您可以使用momentjs作为案例。使用起来非常简单,如果您想将日期格式设置为 DD / MM / YYYY ,只需添加以下行:
var formattedDate = moment(new Date()).format("DD/MM/YYYY");
答案 2 :(得分:2)
你应该调用像getDateIfDate("/Date("+j+")/");
而不是getDateIfDate("/Date(j)/")
这意味着您正在传递字符串"/Date(j)/"
。
function getDateIfDate(d) {
var m = d.match(/\/Date\((\d+)\)\//);
return m ? (new Date(+m[1])).toLocaleDateString('en-US', {month: '2-digit', day: '2-digit', year: 'numeric'}) : d;
}
var j= 1460008501597;
console.log(getDateIfDate("/Date("+j+")/"));