C#后端与JavaScript前端统一时间格式化的方法
在Web开发中,前后端时间显示的格式一致性往往被忽视。本文演示如何通过 C# 服务端代码与 JavaScript 前端脚本,共同将 DateTime 转换为易读的 "dd-MMM-yyyy"(如 29-Aug-2013)格式。
目标结果
将日期对象格式化为固定风格:日-缩写月-年,例如 29-Aug-2013。
准备条件
- C# 环境(.NET Framework 或 .NET Core/5+)。
- JavaScript 运行环境(浏览器或 Node.js)。
真实操作顺序
第1步:C# 后台统一输出格式
目的是利用文化不变性(InvariantCulture)确保月份缩写在全球化环境下始终为英文标准缩写,避免服务器区域设置不同导致的差异。
入口:后端 DTO 序列化前或视图模型赋值处。
动作:调用 DateTime.ToString 并指定 DateTimeFormatInfo.InvariantInfo。
// C# 示例
string formattedDate = dateValue.ToString("dd-MMM-yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo);
// 结果示例: 29-Aug-2013
重要参数:
- format: "dd-MMM-yyyy"(两位天数,三位英文月缩写,四位年份)。
- culture: System.Globalization.DateTimeFormatInfo.InvariantInfo。
完成状态:后端输出字符串符合预期,不依赖服务器本地语言包。
第2步:JavaScript 前端扩展 Date 原型
目的是当接收到 ISO 字符串或特定 JSON 日期格式时,在前端动态解析并转为相同视觉格式。
入口:项目公共工具库(utils.js)或全局脚本。
动作:定义月份映射数组,并向 Date.prototype 添加 format 方法。
// JS 示例
const monName = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sept", "Oct", "Nov", "Dec" ];
Date.prototype.format = function (format) {
if (!format) format = "yyyy-MM-dd hh:mm:ss";
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1,
(this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
if (/(M+)/.test(format)) {
format = format.replace(RegExp.$1,
(monName[this.getMonth()] + "").substr(3 - RegExp.$1.length));
}
if (/(d+)/.test(format)) {
format = format.replace(RegExp.$1,
("00" + this.getDate()).substr(("" + this.getDate()).length));
}
return format;
};
完成状态:所有 Date 对象实例获得 .format() 能力。
第3步:前端解析并应用格式
目的是处理常见的 Ajax 返回的 JSON 日期字符串(如 /Date(timestamp)/),并将其转换为统一格式。
入口:数据渲染函数或 API 响应拦截器。
动作:提取毫秒时间戳,实例化 Date,并调用上述格式的 format 方法。
function formatJsonDate(str) {
if (str && str !== '') {
// 假设输入为 /Date(1234567890)/ 格式
const timestamp = parseInt(str.substring(str.indexOf('(') + 1, str.indexOf(')')));
return new Date(timestamp).format("dd-MMM-yyyy");
}
return '';
}
完成状态:前端页面上显示的文字与后端生成的文本一致。
完成判断
检查页面展示的日期是否为 dd-MMM-yyyy 样式(如 10-Oct-2023),且月份缩写无误(无本地化干扰)。
简要总结
通过 C# 的 InvariantInfo 和 JS 的原型扩展,可以低成本地解决前后端时间格式不一致的问题。该方法简单直接,适合中小型项目中对日期展示有统一规范要求的情况。以上就是C#与JavaScript时间格式化处理方法的详细内容,更多关于C#时间处理与JS日期转换的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









