日期从字符串给出不同的输出从Chrome到Firefox
Javascript Date from string giving different output from Chrome to Firefox
我正在尝试编写一些javascript代码来格式化我想要的日期,但我在Firefox上工作时遇到了麻烦(它在Chrome上工作时我想要的)。
我的输入是05/01/13
(mm/dd/yy),我想要2013-05-01
(yyyy/mm/dd)。
对此,我所做的是这样的:
var formDate = document.getElementById("start").value;
var myDate = new Date(formDate);
var startDate = new Date();
startDate.setMonth(myDate.getMonth() + 1);
startDate.setFullYear(myDate.getFullYear());
var FormattedDate = startDate.getFullYear() + "-" + ((startDate.getMonth() <= 10) ? "0" : "") + startDate.getMonth() + "-01"; // the day is always 01
alert(FormattedDate);
你可以在这两个浏览器上试试:http://jsfiddle.net/j4BLH/
在Google Chrome上,这段代码给了我例如2013-05-01
为五月,但在Firefox上,我有1913-05-01
。
我知道我可以写像"20" + startDate.getYear()
的东西,但我想知道为什么从Chrome到Firefox的结果不同?也许如果你有更好的方法来写我粘贴在这里的代码,请告诉我:)
谢谢!
From the spec:
但是,表达式Date.parse(x.toLocaleString())不是必需的生成与前面三个表达式相同的Number值以及通常由Date产生的值。解析当给定任何不依赖于实现的String值时符合日期时间字符串格式(15.9.1.15),不能在该实现中由toString或toUTCString产生方法。
通过向构造函数传递日期字符串来创建日期对象时,解析方法与date .parse完全相同。
使用2位数年份的日期格式不符合标准。因此,这些日期的解析方式似乎是特定于实现的,这意味着它取决于所使用的Javascript引擎。在谷歌的例子中,通常是V8,而在Firefox中,我相信是TraceMonkey或Rhino。
简而言之,你应该使用4位数的年,因为JS标准中没有YY。
- 在Chrome扩展内部输出Google API调用
- Chrome扩展/来自Javascript值的输出
- 单击事件和鼠标输出事件在chrome中不起作用
- Chrome console.log(elementID)在控制台中输出元素
- 我有AJAX,它在Firefox中运行良好,但在Chrome中不产生任何输出
- 如何在 Zkoss 中启用禁用的 chrome 控制台日志输出
- 从 Chrome 扩展程序中读取标签页的控制台输出
- 是否可以在chrome中输出日志/跟踪,并删除以进行生产
- 警报消息显示我的逻辑是正确的,但谷歌Chrome's的html输出查看器显示不同的内容
- 为什么新的Date()函数在chrome和firefox中提供不同的输出
- 为什么Javascript输出在Google Chrome中被阻止
- Chrome Javascript控制台-使用Console.log(obj)引用对象输出
- 附加到JSON输出的HTML代码可能是由于Google Docs Chrome扩展
- JS测试输出显示在控制台中,而它应该'不要使用Chrome和IE
- 日期从字符串给出不同的输出从Chrome到Firefox
- 如何复制/获取当前标签url在chrome和输出弹出窗口
- 无法用Jquery在Chrome控制台显示输出
- 禁止chrome扩展的控制台输出
- Chrome和谷歌网页字体的问题.显示来自Firefox的不同输出
- jQuery不需要的排序数组输出在Chrome和IE (FF工作良好)