2017-06-06 48 views
3

我想将mongo db数据库中的numberLong日期转换为javascript中的dd/mm/yyyy格式。如何通过JavaScript传递长号码?

当我把直接硬编码值,如下面的代码,它给了我正确的结果:

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

什么是j的值来代替旧线? –

+0

嗨,j的值是1496707200000 –

回答

2

您可以使用momentjs您的情况。这是非常简单的使用,如果你想你的日期格式DD/MM/YYYY,只需添加下面的一行:

var formattedDate = moment(new Date()).format("DD/MM/YYYY"); 
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+")/"));

3
tr+="<td>"+positionList[i][new Date("fromDate").toLocaleString()]+"</td>"; 

尝试这个新