日期插件 bootstrap-datetimepicker 在火狐下出现一条报错信息:TypeError: (intermediate value).toString(…).split(…)[1] is undefined

这条错误必然出现,难道没有在 Firefox 下进行测试。
在 Firefox 下查看项目 demo (http://www.malot.fr/bootstrap-datetimepicker/demo.php)可以正常运行,但这个 demo.php 使用的是 2013-3-2 的 datetimepicker,github 项目(https://github.com/smalot/bootstrap-datetimepicker/releases)已经发布到 2017-3-3,这个最新的版本(以及最近的一些版本)在 Firefox 下测试不完善,计算 defaultTimeZone 时虽然没有出错,但给出的结果也不正确。
源代码如下,运行环境 Firefox 51.0.1(32位)
this.defaultTimeZone = (new Date).toString().split('(')[1].slice(0, -1);
this.timezone = options.timezone || this.defaultTimeZone;
// 2.4.4 改进版本
this.timezone = options.timezone || timeZoneAbbreviation();
function timeZoneAbbreviation() {
var abbreviation, date, formattedStr, i, len, matchedStrings, ref, str;
date = (new Date()).toString();
formattedStr = ((ref = date.split('(')[1]) != null ? ref.slice(0, -1) : 0) || date.split(' ');
if (formattedStr instanceof Array) {
matchedStrings = [];
for (var i = 0, len = formattedStr.length; i < len; i++) {
str = formattedStr[i];
if ((abbreviation = (ref = str.match(/\b[A-Z]+\b/)) !== null) ? ref[0] : 0) {
matchedStrings.push(abbreviation);
}
}
formattedStr = matchedStrings.pop();
}
return formattedStr;
}
出错原因是 Firefox 下 Date.prototype.toString 返回结果不包含 TimeZone 的文字描述。
2.4.4 改进版本使用的 timeZoneAbbreviation 函数在 Firefox 下返回 true
对 timeZoneAbbreviation 使用的三元表达式依次简化
((abbreviation = (ref = str.match(/\b[A-Z]+\b/)) !== null) ? ref[0] : 0) (abbreviation = (ref = str.match(/\b[A-Z]+\b/)) !== null) (abbreviation = (xxx) !== null) (abbreviation = xxx !== null) abbreviation 必然是布尔值,如果将 matchedStrings.push(abbreviation) 换成 matchedStrings.push(str) 更接近预期值。
推荐使用文末的方案。
解决方案
将 date toString 最后一个空格之后的字符串作为 TimeZone。
// this.defaultTimeZone = (new Date).toString().split('(')[1].slice(0, -1);
this.defaultTimeZone = (new Date + '').split(' ').slice(-1)[0].replace(/\(|\)/g, '');
this.timezone = options.timezone || this.defaultTimeZone;
以上所述是小编给大家介绍的 bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# datetimepicker
# 日期插件
# 火狐
# bootstrap datetimepicker日期插件超详细使用方法介绍
# bootstrap datetimepicker日期插件使用方法
# jQuery DateTimePicker 日期和时间插件示例
# Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
# bootstrap-datetimepicker实现只显示到日期的方法
# C#日期控件datetimepicker保存空值的三种方法
# 报错
# 小编
# 的是
# 也不
# 运行环境
# 在此
# 推荐使用
# 这条
# 给大家
# 解决办法
# 所述
# 给我留言
# 源代码
# 正常运行
# 不完善
# 感谢大家
# 不包含
# 进行测试
# 更接近
相关文章:
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何在新浪SAE免费搭建个人博客?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
MySQL查询结果复制到新表的方法(更新、插入)
如何在阿里云服务器自主搭建网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
C#如何在一个XML文件中查找并替换文本内容
定制建站如何定义?其核心优势是什么?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
深入理解Android中的xmlns:tools属性
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
高端建站三要素:定制模板、企业官网与响应式设计优化
制作营销网站公司,淘特是干什么用的?
,石家庄四十八中学官网?
建站主机选择指南:服务器配置与SEO优化实战技巧
专业公司网站制作公司,用什么语言做企业网站比较好?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
浅谈Javascript中的Label语句
已有域名建站全流程解析:网站搭建步骤与建站工具选择
教学网站制作软件,学习*后期制作的网站有哪些?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
Python路径拼接规范_跨平台处理说明【指导】
网站制作说明怎么写,简述网页设计的流程并说明原因?
建站之星如何实现五合一智能建站与营销推广?
非常酷的网站设计制作软件,酷培ai教育官方网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
建站DNS解析失败?如何正确配置域名服务器?
历史网站制作软件,华为如何找回被删除的网站?
如何在IIS中新建站点并解决端口绑定冲突?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何快速生成ASP一键建站模板并优化安全性?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
高防服务器租用首荐平台,企业级优惠套餐快速部署
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
宁波免费建站如何选择可靠模板与平台?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何通过.red域名打造高辨识度品牌网站?
网站制作壁纸教程视频,电脑壁纸网站?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何使用Golang安装API文档生成工具_快速生成接口文档
兔展官网 在线制作,怎样制作微信请帖?
如何制作一个表白网站视频,关于勇敢表白的小标题?
*请认真填写需求信息,我们会在24小时内与您取得联系。