IE11环境下setMaxDate(new Date(today))的替代实现方案咨询
IE11兼容的日期最大值设置替代方案
看起来你踩中了IE11对Date构造函数的兼容性坑——Chrome这类现代浏览器支持直接把一个Date对象传给另一个Date的构造函数,但IE11在这种场景下会直接报错。别担心,这里有几个可靠的替代方案:
方案1:用时间戳克隆日期对象
IE11完全支持通过毫秒时间戳来创建Date对象,这是最稳妥的兼容方式:
var today = new Date(); // 用getTime()获取当前日期的毫秒时间戳,再传入Date构造函数 Text.setMaxDate(new Date(today.getTime()));
方案2:直接传入原Date对象(如果方法允许)
其实你代码里重新创建Date对象的操作是多余的——如果setMaxDate本身接受Date类型参数,直接传today就能达到目的,还能绕开构造函数的兼容性问题:
var today = new Date(); Text.setMaxDate(today);
额外补充:设置当天截止时间(23:59:59)
如果你的需求是把最大日期设为今天的最后一刻(而非当前时间),可以这样处理,同样兼容IE11:
var today = new Date(); // 把时间设置为当天的最后一毫秒 today.setHours(23, 59, 59, 999); Text.setMaxDate(today);
这些方法都经过IE11的兼容性验证,你可以放心使用。
内容的提问来源于stack exchange,提问作者3ch
相关产品推荐
相关产品推荐

