.replace()不起作用.给出错误.replace不是一个函数

.replace() not working. Giving error .replace is not a function

本文关键字:replace 函数 一个 错误 不起作用 出错      更新时间:2023-09-26

我已经编写了一个javascript函数,将时间转换为12小时格式

function formatDate(nwdate) {
    var d = new Date(nwdate);
    var hh = d.getHours();
    var m = d.getMinutes();
    var s = d.getSeconds();
    var dd = "AM";
    var h = hh;
    if (h >= 12) {
        h = hh-12;
        dd = "PM";
    }
    if (h == 0) {
        h = 12;
    }
    m = m<10?"0"+m:m;
    s = s<10?"0"+s:s;

    var pattern = new RegExp("0?"+hh+":"+m+":"+s);
    var replacement = h+":"+m;
    replacement += " "+dd;
    return nwdate.replace(pattern,replacement);
}

给出一个错误,.replace不是一个函数。为什么?

问题是对象nwdate不是字符串。作为一种技巧,您可以尝试这样做:

(""+nwdate).replace(pattern, replacement);

但是这很大程度上取决于用户的系统