我目前的转换方法如下:

function FormatDate(date, fmt) {
    var d = date;
    if (!d) return "";
    if ((Object.prototype.toString.call(d).match(/object\s(\w+)/)[1]).toLowerCase() != "date") {
        d = d.toString();
        var reg = /(Date\(\d+\))/ig;
        eval($.format("d = new {0};", d.match(reg)));
    }
    fmt = (fmt == null) ? "MM/dd/yyyy hh:mm:ss" : fmt;
    return fmt.replace("yyyy", PadStr(d.getFullYear(), 4, "0"))
              .replace("MM", PadStr(d.getMonth() + 1, 2, "0"))
              .replace("yy", PadStr(d.getYear() + 1, 2, "0"))
              .replace("dd", PadStr(d.getDate(), 2, "0"))
              .replace("hh", PadStr(d.getHours(), 2, "0"))
              .replace("mm", PadStr(d.getMinutes(), 2, "0"))
              .replace("ss", PadStr(d.getSeconds(), 2, "0"))
              .replace("{", "")
              .replace("}", "");
}

我想将/ Date(-23788800000)/转换为类似“ 1969/04/01”的字符串,有人可以给我一些建议吗?

===============>>#1 票数:0 已采纳

让我们考虑一个使用JSON序列化返回日期的ASP.NET控制器操作:

public ActionResult GetDate()
{
    return Json(DateTime.Now, JsonRequestBehavior.AllowGet);
}

如您所述,JSON序列化将返回一个字符串,例如: "\\/Date(1398106878581)\\/"

给定的数字是日期(以毫秒为单位)。 用JavaScript解析出来的一种简单方法是var milliseconds = +json.match(/\\d+/); 您可以将其放入Date构造函数中,然后离开。

这是完整的JS代码,将使用我们上面编写的GetDate()操作:

var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        formatDate(xmlHttp.responseText);
    }
}
xmlHttp.open('GET', '/Home/GetDate', true);
xmlHttp.send(null);

var formatDate = function(json) {
    var milliseconds = +json.match(/\d+/);
    var date = new Date(milliseconds);

    var fmt = "MM/dd/yyyy hh:mm:ss";
    var formatted = fmt.replace("yyyy", date.getFullYear())
              .replace("MM", date.getMonth() + 1)
              .replace("yy", date.getYear() + 1)
              .replace("dd", date.getDate())
              .replace("hh", date.getHours())
              .replace("mm", date.getMinutes())
              .replace("ss", date.getSeconds())
              .replace("{", "")
              .replace("}", "");
    return formatted;
}

  ask by Ajax.Li translate from so

未解决问题?本站智能推荐: