Javascript 无法识别的SQL日期时间值

Javascript 无法识别的SQL日期时间值,javascript,c#,sql,datetime,Javascript,C#,Sql,Datetime,我的web应用程序中的一个函数调用自定义API(用C#编写),该API将当前日期和时间存储到数据库中,在API中,只需使用DateTime.Now方法即可赋值 并且以以下方式检索上述日期和时间值: DateTime? dt = !string.IsNullOrEmpty((dr["RecordDate"]).ToString()) ? Convert.ToDateTime(dr["RecordDate"].ToString()) : (DateTime?) null; 当我将上面代码

我的web应用程序中的一个函数调用自定义API(用C#编写),该API将当前日期和时间存储到数据库中,在API中,只需使用
DateTime.Now
方法即可赋值

并且以以下方式检索上述日期和时间值:

DateTime? dt = !string.IsNullOrEmpty((dr["RecordDate"]).ToString()) ? 
    Convert.ToDateTime(dr["RecordDate"].ToString()) : (DateTime?) null;
当我将上面代码中的
dt
中的值赋给JavaScript变量时,我得到的值是
/Date(1415049596057)/
。我以前见过日期和时间值以不同的方式格式化,但我不认为我见过这样的情况。我想我没有正确地处理转换过程,但我真的对此感到困惑

更新:

DateTime变量的赋值如下所示:

using (var con = new SqlConnection(Service.GetSiteSetting(_httpContextAccessor.Current(), customdb))
{
    con.Open();
    var cm = new SqlCommand { CommandType = CommandType.StoredProcedure, CommandText = "SaveRecord", Connection = con };
    ...  // not showing other parameters
    cm.Parameter.Add(new SqlParameter("@RecordDate", SqlDbType.DateTime) { Value = DateTime.Now });
    ...
    cm.ExecuteNonQuery();
}
// 'dateVal' holds the datetime value I retrieved from the database. Also, since the value
// is in '/Date(1415049596057)/' format, I need to extract the numeric part of the value.
var date = new Date(parseInt(dateVal.substr(6)));

datetime值的转换导致了您的问题。请在上查看此相关帖子


编辑:“1415049596057”的值未转换为有效日期。datejs.com上有一个快速检查功能,您可以使用它来验证字符串值。

因此,经过几个小时的反复搜索,我终于找到了答案。至于为什么我要用那种特殊的格式来获取日期时间,我仍然不能100%确定。但是,我注意到有些人把这种奇怪的格式称为“JSON日期”,所以也许这就是它,但有更好理解的人可以证实

无论如何,对于那些可能有相同问题的人,我所要做的就是在我的Javascript中添加一行代码,如下所示:

using (var con = new SqlConnection(Service.GetSiteSetting(_httpContextAccessor.Current(), customdb))
{
    con.Open();
    var cm = new SqlCommand { CommandType = CommandType.StoredProcedure, CommandText = "SaveRecord", Connection = con };
    ...  // not showing other parameters
    cm.Parameter.Add(new SqlParameter("@RecordDate", SqlDbType.DateTime) { Value = DateTime.Now });
    ...
    cm.ExecuteNonQuery();
}
// 'dateVal' holds the datetime value I retrieved from the database. Also, since the value
// is in '/Date(1415049596057)/' format, I need to extract the numeric part of the value.
var date = new Date(parseInt(dateVal.substr(6)));

变量
date
中的值现在是
Mon Nov 03 2014 16:19:56 GMT-0500(东部标准时间)
。正如您所见,它相当冗长,但将该值格式化为您想要的任何格式应该非常简单。

我已经编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。你能出示作业代码吗?您是否使用特定的框架?Soem框架以这种方式序列化日期。您是否试图在javascript中的任何位置将日期时间强制转换为Int?该值是从DateTime@JeffreyWieder-不,我没有在javascriptMisty中进行任何转换-我认为这个问题与datetime值的转换有关,我已经阅读了几篇与您链接的文章类似的文章,但是我拥有的datetime值的格式与所有其他示例完全不同,除非我遗漏了一些东西。我现在无法测试它,我需要看看JavaScript如何获得datetime值才能确定,但是您是否在C#中多次转换该值?当JS得到它时,它的类型是什么?当您将日期时间转换为字符串时,它不会自动采用JavaScript识别的格式,因此如果它是字符串,这可能是您的问题。尝试将其键入日期时间,或使用JavaScrit识别的格式字符串。