根据此answer,Firefox和Chrome在创建日期对象时接受格式"YYYY MM DD"
。Edge,Chrome和Firefox中的日期定义
然而,边缘不允许new Date("YYYY MM DD")
并希望被初始化为:new Date("YYYY-MM-DD")
所以,我应该首先检查创建日期对象之前正在使用的浏览器或者是有一个共同的模式,通过该日期对象可以创建?
根据此answer,Firefox和Chrome在创建日期对象时接受格式"YYYY MM DD"
。Edge,Chrome和Firefox中的日期定义
然而,边缘不允许new Date("YYYY MM DD")
并希望被初始化为:new Date("YYYY-MM-DD")
所以,我应该首先检查创建日期对象之前正在使用的浏览器或者是有一个共同的模式,通过该日期对象可以创建?
我不确定我是否理解你的问题,因为我尝试过的Firefox可以使用新的Date(“YYYY-MM-DD”),所以你可以使用它并通过使用Edge避免出现问题总而言之,无论如何,如果你得到一个无效的日期,这是我的解决方案,例如:
var date;
date = new Date("10 01 01"); //invalid date
if(isNaN(date.getDay())){
date = new Date("2010-01-01")
}
希望这有助于你
如前面的答复中提到,新的日期( “YYYY-MM-DD”)应该工作在Firefox。测试此示例代码,例如:http://www.w3schools.com/js/tryit.asp?filename=tryjs_date_string_iso1。
这里有一个单独的问题与您可能遇到的日期相关,这是UTC日期与用户时区的对齐。此线程有关于此问题以及如何适应它的更多信息:Javascript date object always one day off?
希望能够解决您的问题!
“Firefox”不允许使用日期(“YYYY-MM-DD”)。所以,我需要一个共同的模式。我明白你的回避,但宁愿有一个更干净的解决方案,因为这个函数将被调用很多次。 – Asqan
我觉得很奇怪,因为我试图在Firefox上这样做,发现这一点: JavaScript ISO日期 ISO 8601是表示日期和时间的国际标准。 的ISO 8601语法(YYYY-MM-DD),也是首选的JavaScript日期格式 在http://www.w3schools.com/js/js_date_formats.asp 抱歉,我不能是任何帮助 – Pizzy