在jQuery中转换日期时间

时间:2014-03-24 12:11:53

标签: c# jquery .net ajax

我有一个ajax请求,它从数据库中获取日期时间。例如,日期时间是   3/24/2014 10:15:35 AM ,我想在剃须刀视图页面中显示此日期时间。 我的代码::

查看代码::

 $.ajax({
        url: "/Home/CheckLatestTicket",
        type: "POST",
        success: function (data) {
            var date = Date(data);              
            $("#latestTicket").html("<p style='font-size: 15px;'>" + date + "</p>");
        }
    });

控制器Ajax请求:

    public ActionResult CheckLatestTicket()
    {
        DateTime result = (from t in db.imsticket where t.viewTicketClient == 0 && t.OrganizationId == 1 orderby t.createTicket descending select t.createTicket ).FirstOrDefault();

        return Json(result);
    }

使用此代码我只能使用以下格式获取当前日期时间::

这是来自ajax请求的实际结果

   /Date(1395634535793)/

这是结果,显示在页面中:(当前日期时间)

Mon Mar 24 2014 17:50:26 GMT+0600 (Bangladesh Standard Time)

我想显示此结果

    3/24/2014 10:15:35 AM 

4 个答案:

答案 0 :(得分:1)

我认为您应该尝试进行客户端转换,以便从Ajax请求中获取其他信息。您可以按照以下代码:

$.ajax({
   url: "/Home/CheckLatestTicket",
   type: "POST",
   success: function (data) {
      var thisDate = new Date(parseInt(data.substr(6)));    
      $("#latestTicket").html("<p style='font-size: 15px;'>" + thisDate.toLocaleString() + "</p>");
   }
});

答案 1 :(得分:0)

自定义格式化数据&amp;这样的时间就像这样

 $.ajax({
    url: "/Home/CheckLatestTicket",
    type: "POST",
    success: function (data) {
        var date = Date(data);       
        var dt= date.customFormat( "#DD#/#MM#/#YYYY# #hh#:#mm#:#ss#" ); //custom formatting       
        $("#latestTicket").html("<p style='font-size: 15px;'>" + dt+ "</p>");
    }
});

快乐编码:)

答案 2 :(得分:0)

简单。将其作为字符串而不是DateTime对象发送。

public ActionResult CheckLatestTicket()
{
    DateTime result = (from t in db.imsticket where t.viewTicketClient == 0 && t.OrganizationId == 1 orderby t.createTicket descending select t.createTicket ).FirstOrDefault();

    return Json(result.ToString("MM/dd/yyyy hh:mm:ss tt"));
}

答案 3 :(得分:0)

正如我在之前的评论中所说:

您希望日期格式(dd / mm / yyyy,mm / dd / yyyy)等根据浏览器区域设置而有所不同吗?如果不是,简单的return Json(result.ToString("MM/dd/yyyy hh:mm:ss tt"));将执行格式化服务器端。

e.g。服务器端:

public ActionResult CheckLatestTicket()
{
    DateTime result = (from t in db.imsticket where t.viewTicketClient == 0 && t.OrganizationId == 1 orderby t.createTicket descending select t.createTicket ).FirstOrDefault();

    return Json(result.ToString("MM/dd/yyyy hh:mm:ss tt"));
}

如果你想在客户端做这个,基于浏览器语言环境,它会变得更复杂。

由于您的数据已经是Date对象,因此固定格式很简单:

e.g。客户端固定格式:

$.ajax({
    url: "/Home/CheckLatestTicket",
    type: "POST",
    success: function (data) {
        $("#latestTicket").html("<p style='font-size: 15px;'>" + data.customFormat( "#MM#/#DD#/#YYYY# #hh#:#mm#:#ss#" ) + "</p>");
    }
});

要在正确的区域设置中动态显示,需要花费更多精力。 toLocaleDateString() Date方法会为每个浏览器返回不同的日期 (完整月份名称与月份数量等),或者您可以这样做:

e.g。客户端本地化格式:

$.ajax({
    url: "/Home/CheckLatestTicket",
    type: "POST",
    success: function (data) {
        $("#latestTicket").html("<p style='font-size: 15px;'>" + data.toLocaleDateString() + data.customFormat( " #hh#:#mm#:#ss#" ) + "</p>");
    }
});

要超越此范围,您可以使用var locale = window.navigator.userLanguage || window.navigator.language;检查区域设置并测试特定语言,但是您尚未指定是否需要此级别的控制。

相关问题