Javascript 如何将JSON格式的日期字符串解析为日期格式

Javascript 如何将JSON格式的日期字符串解析为日期格式,javascript,jquery,asp.net,json,ajax,Javascript,Jquery,Asp.net,Json,Ajax,我正在做的是,使用ajax从数据库中获取数据,并将其显示在html文本框中以进行更新。下面是我成功获取数据的Web方法代码 [WebMethod] public static List<Employee> getEmployee() { var slist = new List<Employee>(); var db = new BLUEPUMPKINEntities(); slist = db.Employees.ToList();

我正在做的是,使用ajax从数据库中获取数据,并将其显示在html文本框中以进行更新。下面是我成功获取数据的Web方法代码

[WebMethod]
public static List<Employee> getEmployee()
{
     var slist = new List<Employee>();
     var db = new BLUEPUMPKINEntities();
     slist = db.Employees.ToList();
     return slist;
}

我想要mm/dd/yyyy格式的日期。请帮助我解决我的问题。

如果添加依赖项没有问题,那么您可以添加moment.js,它将帮助您以任何格式格式化数据 我假设来自服务器的日期的格式为
'/date(725828400000)/'

如果您无法添加MomentJS,那么您可以执行以下操作

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);
var-date=新日期(数字(d.match(/\d+/)[0]);
var day=date.getDate();
天=天=(天<10)?(“0”+天):天;
var month=date.getMonth()+1);
月=(月<10)?(“0”+月):月;
var dateStr=day+“-”+month+“-”+date.getFullYear();
结果:推送(dateStr);

最简单的方法如下(无需第三方js)

如果要设置日期格式,可以使用

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
     };
你可以用C来格式化你想要的任何东西#

//在硬编码日期的位置放置字符串

对于您的情况,您将从Db中获得一个作为字符串的长值。添加 再来一行

现在将此值传递给对象。像


您已经有了一个数据对象,它有自己的方法来提取您所需要的一切

您可以创建如下示例中所示的函数:


此方法将所有
WCF
类型日期转换为
javascript
日期对象:

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]);
    }
}

从发送ISO日期字符串开始server@charlietfl我编辑了我的答案,我以为他得到的是一个有效的日期字符串,但格式不同。谢谢你的正确答案。这对我很有用。但是这里还有一个问题,那就是js不能访问我的ajaxcall外部文件。因此,我将ajaxcall-->getEmployee()方法放在外部文件的外部,以便从中轻松访问它。但我想在ajaxcall方法中访问我的矩(),因为在该方法中我放置了所有ajax方法。您前面的代码显示了正确的格式。你为什么编辑它?实际上,主要问题是moment()方法无法访问到我的ajaxcall.js文件中。我还将moment.js文件引用放在前面,但它不能访问ajaxcall。如果您告诉我如何将moment.js引用到ajaxcall.js外部文件中。所以我再次非常感谢你。事实上@charlietfl否决了这个答案,如果你不能插入MomentJS,那么你可以创建一个函数来格式化你的DateD是什么?aur如果我放置
jsonObject.EMP\u DOB.match
则没有与
match
匹配的intellisense匹配,谢谢您的评论,但您的回答对我无效。此错误突出显示在
行.EMP\u DOB.ToString()
上,匿名类型成员声明无效。匿名类型成员必须使用成员分配、简单名称或成员访问权限声明。我刚刚编辑了答案,我在外部,因此无法响应。如果你想的话,可以查一下。您不需要在客户端执行任何操作,我正在将日期转换为
/date(725828400000)/
此格式,而不是“2014/03/12”var date=new date(item.EMP_DOB)//它显示了一个错误尝试以下操作:var newDate=parseInt(“725828400000”)//在这里使用您的物品。EMP_DOB;现在将此值传递给对象。Like var date=新日期(newDate);您正在以字符串形式传递长值,因此无法解析。
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
 };
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
     };
var dbDate = "2014/03/12";    
var date    = new Date(dbDate); 
 var newDate = parseInt("725828400000"); // use here your item.EMP_DOB;
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)
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]);
    }
}