0

我正在尝试创建一个需要根据 pc 区域设置显示日期格式的 JAVASCRIPT 代码。我需要将“2013 年 4 月 19 日”的以下模式表示为 04/19/2013 或“19/04/2013”​​或“2013/04/19”,以适用于该地区。

4

2 回答 2

0

下面的方式,一种轻量级的方法,可能会有所帮助:[然而,有许多 jquery 插件/库可用)

  1. 以 UTC 格式在 db 中保存日期(如果不是 utc 格式,则将其转换为 utc 格式)
  2. 在 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 回答