What I am doing is, fetching data from database using ajax and show it on html text boxes for update purposes. Below is my Web Method code from where I get data successfully.
[WebMethod]
public static List<Employee> getEmployee()
{
var slist = new List<Employee>();
var db = new BLUEPUMPKINEntities();
slist = db.Employees.ToList();
return slist;
}
Now when I get data from database I got date in this format /Date(725828400000)/
. I search google about parse and converting json date string format into html / javascript date also use 3rd party plugins like moment.js and jquery.ui but not solve my problem. Also here I am sharing my code from which I get data from ajax in json format and show it on jquery datatable.
$.ajax({
url: "Employees.aspx/getEmployee",
data: null,
contentType: "Application/json; charset=utf-8",
responseType: "json",
method: "POST",
success: function (response) {
//alert(response.d);
var jsonObject = response.d;
var result = jsonObject.map(function (item) {
//var date = new Date(item.EMP_DOB);
//var obj = Date.parse(date);
var result = [];
result.push('');
result.push(item.EMP_FNAME);
result.push(item.EMP_MNAME);
result.push(item.EMP_LNAME);
result.push(item.EMP_EMAIL);
result.push(item.EMP_DOB); //this is my date column in my database from where date is in yyyy/mm/dd format
result.push(item.EMP_USERNAME);
result.push(item.EMP_PASSWORD);
result.push(item.ID);
return result;
});
myTable.rows.add(result); // add to DataTable instance
myTable.draw();
},
error: function (xhr) {
alert(xhr.status);
},
Failure: function (response) {
alert(response);
}
});
I want date in mm/dd/yyyy format. Please help me to solve my prob.
What I am doing is, fetching data from database using ajax and show it on html text boxes for update purposes. Below is my Web Method code from where I get data successfully.
[WebMethod]
public static List<Employee> getEmployee()
{
var slist = new List<Employee>();
var db = new BLUEPUMPKINEntities();
slist = db.Employees.ToList();
return slist;
}
Now when I get data from database I got date in this format /Date(725828400000)/
. I search google about parse and converting json date string format into html / javascript date also use 3rd party plugins like moment.js and jquery.ui but not solve my problem. Also here I am sharing my code from which I get data from ajax in json format and show it on jquery datatable.
$.ajax({
url: "Employees.aspx/getEmployee",
data: null,
contentType: "Application/json; charset=utf-8",
responseType: "json",
method: "POST",
success: function (response) {
//alert(response.d);
var jsonObject = response.d;
var result = jsonObject.map(function (item) {
//var date = new Date(item.EMP_DOB);
//var obj = Date.parse(date);
var result = [];
result.push('');
result.push(item.EMP_FNAME);
result.push(item.EMP_MNAME);
result.push(item.EMP_LNAME);
result.push(item.EMP_EMAIL);
result.push(item.EMP_DOB); //this is my date column in my database from where date is in yyyy/mm/dd format
result.push(item.EMP_USERNAME);
result.push(item.EMP_PASSWORD);
result.push(item.ID);
return result;
});
myTable.rows.add(result); // add to DataTable instance
myTable.draw();
},
error: function (xhr) {
alert(xhr.status);
},
Failure: function (response) {
alert(response);
}
});
I want date in mm/dd/yyyy format. Please help me to solve my prob.
Share Improve this question asked Feb 7, 2016 at 11:49 Ahmer Ali AhsanAhmer Ali Ahsan 6,14618 gold badges48 silver badges85 bronze badges 1- 1 start by sending ISO date string from server – charlietfl Commented Feb 7, 2016 at 12:16
5 Answers
Reset to default 6If there is no issue in adding a dependency, then you can add moment.js and it will help you to format data in any format
I am supposing that date from server is in this format '/Date(725828400000)/'
var d = item.EMP_DOB;
result.push(moment(Number(d.match(/\d+/)[0])).format('MM/DD/YYYY'));
If you are unable to add moment js then you can do soemthing like
var date = new Date(Number(d.match(/\d+/)[0]));
var day = date.getDate();
day = day = (day < 10) ? ("0" + day) : day;
var month = date.getMonth() + 1);
month = (month < 10) ? ("0" + month) : month;
var dateStr = day + "-" + month + "-" + date.getFullYear();
result.push(dateStr);
You already have a data object, which has its methods to extract everything you need.
You can make a function like in this example:
Get string in yyyymmdd format from js date object
Easiest way to do is below (no third party js required)
var data =from row in db.Employees.ToList()
select new {
EMP_DOB=row.EMP_DOB.ToString(), row.EMP_FNAME,row.EMP_MNAME,row.EMP_LNAME
row.EMP_EMAIL,row.EMP_DOB,row.EMP_USERNAME,row.EMP_PASSWORD,row.ID
};
If you want to format the date you can use
var data =from row in db.Employees.ToList()
select new {
EMP_DOB=Convert.ToString(row.EMP_DOB).ToShortDateString(), other properties goes here as shown previously
};
You wil be able to format it whatever you want using C#
this method will convert all your WCF
type dates to javascript
Date object:
var dateRegex = /^\/Date\((d|-|.*)\)[\/|\\]$/;
function convertWCFStringDate(strDate) {
var matched = dateRegex.exec(strDate);
if (matched) {
var parts = matched[1].split(/[-+,.]/);
return new Date(parts[0] ? +parts[0] : 0 - +parts[1]);
}
}
var dbDate = "2014/03/12";
var date = new Date(dbDate);
// in place of hardcoded date place your string
For your case you are getting a long value as a string from Db. Add one more line
var newDate = parseInt("725828400000"); // use here your item.EMP_DOB;
Now pass this value to your object. Like
var date = new Date(newDate);
var mm = (date.getMonth()+1)>9?(date.getMonth()+1):"0"+(date.getMonth()+1);
var dd = date.getDate()>9?date.getDate():"0"+date.getDate();
var yyyy = date.getFullYear();
var newDate = mm+"/"+"/"+dd+"/"+yyyy;
alert(dbDate+" converted to "+newDate)