【问题标题】:Date Definition in Edge, Chrome and FirefoxEdge、Chrome 和 Firefox 中的日期定义
【发布时间】:2016-01-21 15:23:49
【问题描述】:

根据answer,Firefox 和 Chrome 在创建日期对象时接受格式"YYYY MM DD"

但是,Edge 不允许 new Date("YYYY MM DD") 并希望初始化为:new Date("YYYY-MM-DD")

那么,我应该在创建日期对象之前先检查正在使用的浏览器,还是有一个可以创建日期对象的通用模式?

【问题讨论】:

    标签: javascript google-chrome date firefox microsoft-edge


    【解决方案1】:

    我不确定我是否理解您的问题,因为对于我尝试过的内容,firefox 允许您使用 new Date("YYYY-MM-DD") ,因此您可以使用它并通过使用 always 来避免 Edge 的问题那,无论如何,如果你得到一个无效的日期,这是我的解决方案:

    变量日期;

           date = new Date("10 01 01"); //invalid date
        if(isNaN(date.getDay())){
            date = new Date("2010-01-01")
        }
    

    希望对你有帮助

    【讨论】:

    • "Date("YYYY-MM-DD")" 是 Firefox 不允许的。所以,我需要一个共同的模式。我理解你的回避,但更喜欢更干净的解决方案,因为这个函数会被调用很多次。
    • 我觉得这很奇怪,因为我自己尝试在 Firefox 上这样做,结果发现:JavaScript ISO 日期 ISO 8601 是日期和时间表示的国际标准。 ISO 8601 语法 (YYYY-MM-DD) 也是 w3schools.com/js/js_date_formats.asp 的首选 JavaScript 日期格式,对不起,我帮不上什么忙
    【解决方案2】:

    如上一个答案所述, new Date("YYYY-MM-DD") 应该可以在 Firefox 中使用。测试此示例代码,例如:http://www.w3schools.com/js/tryit.asp?filename=tryjs_date_string_iso1

    这里有一个与您可能遇到的日期相关的单独问题,即 UTC 日期与用户时区的对齐。这个线程有更多关于这个问题以及如何适应它的信息:Javascript date object always one day off?

    希望这能解决您的疑虑!

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多