Reputation: 51
I want to convert numberLong date from the mongo db database into dd/mm/yyyy format in javascript.
When I put direct hardcoded value like the following code, it gives me correct result:
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)/"));
Here is my code :
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
}
What changes I should make in my code to get the date in required format?
Upvotes: 3
Views: 157
Reputation: 353
tr+="<td>"+positionList[i][new Date("fromDate").toLocaleString()]+"</td>";
try to replace old line by this new one
Upvotes: 3
Reputation: 5546
You should invoke function like this getDateIfDate("/Date("+j+")/");
instead of getDateIfDate("/Date(j)/")
this means you are passing string "/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+")/"));
Upvotes: 2