我正在尝试创建一个需要根据 pc 区域设置显示日期格式的 JAVASCRIPT 代码。我需要将“2013 年 4 月 19 日”的以下模式表示为 04/19/2013 或“19/04/2013”或“2013/04/19”,以适用于该地区。
问问题
144 次
2 回答
0
下面的方式,一种轻量级的方法,可能会有所帮助:[然而,有许多 jquery 插件/库可用)
- 以 UTC 格式在 db 中保存日期(如果不是 utc 格式,则将其转换为 utc 格式)
- 在 javascript 中,var localeDate = new Date("{Utc Date from Server}" + "utc") //只需在 "utc" 后面加上日期
如果您是 ASP.NET MVC 人,那么下面的代码段可能会有所帮助:
$("#spanTime").text(new Date('@Model.EventDateTimeStr' + "utc").stringFormat("MM/DD/YYYY"));
Date.prototype.stringFormat = function (format) {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var monthsFull = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var dt = this;
var h = dt.getHours();
var d = dt.getDate();
var M = dt.getMonth() + 1;
var yyyy = dt.getFullYear();
var yy = padBefore((yyyy + "").substr(2, 2), 2);
var m = dt.getMinutes();
var dd = padBefore(d, 2);
var MM = padBefore(M, 2);
var mm = padBefore(m, 2);
var MMM = months[M - 1];
var MMMM = monthsFull[M - 1];
var H = h;
var HH = padBefore(h, 2);
var hh = "";
var tt = "PM";
if (h >= 12) {
if (h != 12) {
h = h - 12;
}
} else {
if (h == 0) h = 12;
tt = " AM";
}
hh = padBefore(h, 2);
return format
.replace("hh", hh)
.replace("h", h)
.replace("HH", HH)
.replace("H", H)
.replace("mm", mm)
.replace("m", m)
.replace("dd", dd)
.replace("d", d)
.replace("MMMM", MMMM)
.replace("MMM", MMM)
.replace("MM", MM)
/*.replace("M", M)*/
.replace("yyyy", yyyy)
.replace("yy", yy)
.replace("tt", tt);
};
于 2013-04-19T06:01:27.413 回答
0
您可以根据 navigator.language 格式化日期
看
https://developer.mozilla.org/en-US/docs/DOM/window.navigator.language
var lang= navigator.browserLanguage || navigator.language || navigator.userLanguage;
于 2013-04-19T06:03:13.043 回答