javascript - 字符串上下文中的新日期在 Firefox 中不起作用

标签 javascript firefox node.js google-chrome

以下代码中的最后一个日志在 Firefox 中不起作用。为什么?

(function() {

    String.prototype.toDate = function() {
        return new Date(this);
    };

    console.log(Date.parse("2012-01-31"));
    console.log(new Date("2012-01-31"));
    console.log("2012-01-31".toDate());

})();

为了在浏览器中测试这一点,我将上面的代码片段放入一个文件中并使用了以下 HTML。

<!DOCTYPE html>
<body>
    <script src="wtf.js"></script>
</body>

NodeJS(v0.4.12):

1327932000000
Mon, 30 Jan 2012 14:00:00 GMT 
Mon, 30 Jan 2012 14:00:00 GMT

Chrome (17.0.963.79):

1327968000000
Tue Jan 31 2012 10:00:00 GMT+1000 (EST)
Tue Jan 31 2012 10:00:00 GMT+1000 (EST)

火狐 (10.0):

1327968000000
Date {Tue Jan 31 2012 10:00:00 GMT+1000 (EST)}
Date {Invalid Date}

最佳答案

Firefox 的 String.prototype 中的

this 似乎没有将字符串作为字符串引用。如果您添加到您的方法中:

String.prototype.toDate = function() {
        return new Date(String(this));
    };

一切正常。

关于javascript - 字符串上下文中的新日期在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9832192/

相关文章:

jquery - 将类添加到正文时不触发 CSS 转换 (Firefox)

c# - 无法使用 System.Data.Sqlite 访问(Firefox 的)Sqlite 数据库

node.js - Webstorm 不识别 node.js 第三方模块

javascript - 在express中使用中间件的正确方法

javascript - 获取第一个 HTML 标签的文本内容

如果按钮按下,Javascript "mouseover"不会被触发 (Firefox)

node.js - 为什么 http 模块不在 node_modules 文件夹中?

javascript - MERN Stack中如何进行子域路由?

javascript - 揭开流体宽度的标题图像

javascript - 删除函数时重新加载总数 - 基于 HTML 和 JS 的表单