【问题标题】:What is the best way to display date time using Linq to Datatable?使用 Linq to Datatable 显示日期时间的最佳方法是什么?
【发布时间】:2020-02-05 14:18:03
【问题描述】:

我有一个 linq,可以选择一些带有日期的列到数据表。 我正在使用 ASP MVC 5 和 Datatble。

我真的需要日期时间。我已经显示字符串并且没有问题。 但是当我尝试显示原始日期时间时,我得到了这个输出

/Date(1569366000000)/   /Date(1569397607057)/

这是我的代码

 var IQueryabletimesheet = (from expense in _context.ExpenseModel
                                       join expenseaudittb in _context.ExpenseAuditTB on expense.ExpenseID equals expenseaudittb.ExpenseID
                                       join project in _context.ProjectMaster on expense.ProjectID equals project.ProjectID
                                       join registration in _context.Registration on expense.UserID equals registration.RegistrationID
                                       join AssignedRolesAdmin in _context.AssignedRoles on registration.RegistrationID equals AssignedRolesAdmin.RegistrationID
                                       where AssignedRolesAdmin.AssignToAdmin == UserID && expenseaudittb.Status == 3
                                       select new ExpenseModelView
                                       {
                                           ExpenseID = expense.ExpenseID,
                                           ProjectName = project.ProjectName,
                                           RequestBy = registration.Name,
                                           FromDate = expense.FromDate.Value,

                                           ProcessedDate = expenseaudittb.ProcessedDate,

                                           ExpenseStatus = expense.ExpenseStatus == 1 ? "Submitted" : expense.ExpenseStatus == 2 ? "Approved" : expense.ExpenseStatus == 4 ? "Pending Final Approval" : "Rejected",

                                           PurposeorReason = expense.PurposeorReason,
                                           TotalAmount = expense.TotalAmount,

                                           VoucherID = expense.VoucherID,
                                       });

            if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir)))
            {
                IQueryabletimesheet = IQueryabletimesheet.OrderBy(sortColumn + " " + sortColumnDir);
            }
            if (!string.IsNullOrEmpty(Search))
            {
                //IQueryabletimesheet = IQueryabletimesheet.Where(m => m.FromDate == Search);
            }

            return IQueryabletimesheet;

我通过视图中的 ajax 调用获得结果。这没有问题,除了显示上述错误的日期时间列

我需要类似于我在 SQL Server 中看到的东西 2019 年 8 月 10 日 10:43

【问题讨论】:

    标签: c# ajax linq datatable


    【解决方案1】:

    我找到了解决问题的方法。请注意,这可能不是唯一的解决方案,但正是我想要的。解决方案是使用 moment.js,这就是我呈现列的方式,一切正常。我希望保留原始数据及其类型(日期时间)。

    {
       title: "ProcessedDate",// name 
       render: function (data, type, row) 
                {//data
                            return moment(row.ProcessedDate).format('DD/MM/YYYY hh:mm:ss');
                }
    }           
    

    【讨论】:

      【解决方案2】:

      要按预期显示,您必须将日期转换为字符串。前任。 string.Format("{0: G}",费用.FromDate.Value)。

      var IQueryabletimesheet = (from expense in _context.ExpenseModel
                                             join expenseaudittb in _context.ExpenseAuditTB on expense.ExpenseID equals expenseaudittb.ExpenseID
                                             join project in _context.ProjectMaster on expense.ProjectID equals project.ProjectID
                                             join registration in _context.Registration on expense.UserID equals registration.RegistrationID
                                             join AssignedRolesAdmin in _context.AssignedRoles on registration.RegistrationID equals AssignedRolesAdmin.RegistrationID
                                             where AssignedRolesAdmin.AssignToAdmin == UserID && expenseaudittb.Status == 3
                                             select new ExpenseModelView
                                             {
                                                 ExpenseID = expense.ExpenseID,
                                                 ProjectName = project.ProjectName,
                                                 RequestBy = registration.Name,
                                                 FromDate = string.Format ("{0:G}", expense.FromDate.Value),
      
                                                 ProcessedDate = expenseaudittb.ProcessedDate,
      
                                                 ExpenseStatus = expense.ExpenseStatus == 1 ? "Submitted" : expense.ExpenseStatus == 2 ? "Approved" : expense.ExpenseStatus == 4 ? "Pending Final Approval" : "Rejected",
      
                                                 PurposeorReason = expense.PurposeorReason,
                                                 TotalAmount = expense.TotalAmount,
      
                                                 VoucherID = expense.VoucherID,
                                             });
      

      【讨论】:

      • 字符串。格式?在linq里面?请更明确。还是我应该在视图中执行此操作,ajax 部分?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多