ASP.NET Core+SQL场景下,如何用JavaScript仅显示DateTime的日期部分
前端表格仅显示日期部分的解决方案
方法1:直接截取ISO日期字符串
ASP.NET Core返回的datetime类型数据通常是ISO格式(如2024-05-20T14:30:00),可以通过字符串分割直接提取日期部分:
修改你的LoadTable函数中日期字段的处理逻辑:
function LoadTable(Data) { var html = ''; for (var i = 0; i < Data.length; i++) { html += '<tr>'; // 补充缺失的<tr>标签 html += '<td>' + Data[i].Id + '</td>'; html += '<td>' + Data[i].PersonName + '</td>'; // 提取BirthDate的日期部分 html += '<td>' + Data[i].BirthDate.split('T')[0] + '</td>'; // 提取IssueDate的日期部分 html += '<td>' + Data[i].IssueDate.split('T')[0] + '</td>'; html += '</tr>'; } $('#tbl_Data tbody').html(html); }
方法2:使用JavaScript Date对象格式化
如果需要更灵活的日期显示格式(比如适配本地语言),可以用Date对象结合toLocaleDateString方法:
function LoadTable(Data) { var html = ''; for (var i = 0; i < Data.length; i++) { html += '<tr>'; html += '<td>' + Data[i].Id + '</td>'; html += '<td>' + Data[i].PersonName + '</td>'; // 格式化成本地日期格式(如中文环境显示"2024/5/20") html += '<td>' + new Date(Data[i].BirthDate).toLocaleDateString() + '</td>'; html += '<td>' + new Date(Data[i].IssueDate).toLocaleDateString() + '</td>'; html += '</tr>'; } $('#tbl_Data tbody').html(html); }
如果需要固定格式(比如yyyy-MM-dd),可以用Intl.DateTimeFormat自定义:
const dateFormatter = new Intl.DateTimeFormat('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit' }); function LoadTable(Data) { var html = ''; for (var i = 0; i < Data.length; i++) { html += '<tr>'; html += '<td>' + Data[i].Id + '</td>'; html += '<td>' + Data[i].PersonName + '</td>'; html += '<td>' + dateFormatter.format(new Date(Data[i].BirthDate)) + '</td>'; html += '<td>' + dateFormatter.format(new Date(Data[i].IssueDate)) + '</td>'; html += '</tr>'; } $('#tbl_Data tbody').html(html); }
方法3:后端统一处理(ASP.NET Core)
如果希望前端无需处理,可在后端直接将datetime字段格式化为日期字符串返回:
- 在模型属性上添加格式化逻辑:
public class YourModel { public int Id { get; set; } public string PersonName { get; set; } public DateTime BirthDate { get; set; } // 格式化为yyyy-MM-dd后返回给前端 public string FormattedBirthDate => BirthDate.ToString("yyyy-MM-dd"); public DateTime IssueDate { get; set; } public string FormattedIssueDate => IssueDate.ToString("yyyy-MM-dd"); }
- 或者在API接口中直接映射格式化:
return Ok(yourDataList.Select(item => new { item.Id, item.PersonName, BirthDate = item.BirthDate.ToString("yyyy-MM-dd"), IssueDate = item.IssueDate.ToString("yyyy-MM-dd") }));
这种方式前端可以直接使用Data[i].BirthDate,无需额外处理。
内容的提问来源于stack exchange,提问作者fahime abouhamze
相关产品推荐
相关产品推荐

