zoukankan      html  css  js  c++  java
  • MVC日期格式化,后台使用Newtonsoft.Json序列化日期,前端使用”f”格式化日期

    MVC控制器中,经常使用Newtonsoft.Json把对象序列化成json字符串传递到前端视图。当对象中有DateTime类型的属性时,前后台如何处理才能把DateTime类型转换成想要的格式呢?

     

    有这样的一个类具有DateTime类型属性:

    using System;
     
    namespace MvcApplication1.Models
    {
        public class Sample
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public DateTime Date { get; set; }
        }
    }

     

    控制器中使用Newtonsoft.Json把对象实例序列化成json字符串:

    using System.Web.Mvc;
    using MvcApplication1.Models;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Converters;
     
    namespace MvcApplication1.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                var sample = new Sample()
                {
                    Id = 1,
                    Name = "good",
                    Date = DateTime.Now
                };
     
                JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
                {
                     DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
                     DateTimeZoneHandling = DateTimeZoneHandling.Utc
                };
                ViewData["json"] = Newtonsoft.Json.JsonConvert.SerializeObject(sample, microsoftDateFormatSettings);
                return View();
            }
     
        }
    }
     

    前台视图使用一个叫"f"的js文件,把json中的日期格式转换成期望的样子:

    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    <p>
        <span id="jsonDate">@ViewData["json"]</span>
    </p>
     
    <p>
        转换后的时间格式为:<span id="fDate"></span>
    </p>
     
    @section scripts
    {
        <script src="~/Scripts/date.f-0.5.0.js"></script>
        <script type="text/javascript">
            $(function () {
               
                var obj = $.parseJSON($('#jsonDate').text());
                //$('#fDate').text(new Date(parseInt(obj.Date.substr(6))).f("yyyy-MM-dd HH:mm:ss"));
                $('#fDate').text(new Date(parseInt(obj.Date.substr(6))).f("yyyy-MM-dd"));
            });
        </script>
    }
     

    结果:

    1

     

    参考资料:
    关于"f" 的js文件:http://fisforformat.sourceforge.net/
    关于Newtonsoft.Json:http://james.newtonking.com/json/help/index.html?topic=html/DatesInJSON.htm

  • 相关阅读:
    MySQLFront导入SQL文件报#1113错误解决
    LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2
    币胜网虚拟货币交易平台安装说明
    windows服务器详细安全设置
    WINDOWS SERVER 2008远程桌面端口修改方法
    mac终端ssh连接服务器 空闲的时候 连接断开
    FTP软件发送"AUTH TLS"提示 无法连接到服务器
    LNMP状态管理命令
    lnmp1.4环境FTP服务器的安装和使用
    springCloud
  • 原文地址:https://www.cnblogs.com/darrenji/p/3642050.html
Copyright © 2011-2022 走看看